Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
$ cat main_stl.cpp
#include <string>
#include <iostream>
int main(int argc, char* argv[]) {
std::string s = "Hello, world!";
std::cout << s << std::endl;
return 0;
}$ cat main_qt.cpp
#include <QString>
#include <QDebug>
int main(int argc, char* argv[]) {
QString s = "Hello, world!";
qDebug() << s;
return 0;
}$ cat strings_qt.pro TARGET = strings_qt SOURCES = main_qt.cpp
$ qmake && make 1>/dev/null 2>1 $ g++ main_stl.cpp -o strings_stl $ ls -l strings_* -rwxr-xr-x 1 mikhail mikhail 9125 2009-11-13 15:45 strings_qt -rwxr-xr-x 1 mikhail mikhail 9364 2009-11-13 15:45 strings_stl
$ strip strings_* $ ls -l strings_* -rwxr-xr-x 1 mikhail mikhail 5692 2009-11-13 15:46 strings_qt -rwxr-xr-x 1 mikhail mikhail 5684 2009-11-13 15:46 strings_stl
class CAutoMutex
{
pthread_mutex_t m_mutex;
CAutoMutex(const CAutoMutex&);
CAutoMutex& operator=(const CAutoMutex&);
public:
inline CAutoMutex()
{
pthread_mutexattr_t attr;
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init(&m_mutex, &attr);
pthread_mutexattr_destroy(&attr);
}
inline ~CAutoMutex()
{
pthread_mutex_destroy(&m_mutex);
}
inline pthread_mutex_t& get()
{
return m_mutex;
}
};
* This source code was highlighted with Source Code Highlighter.
Многопоточность, общие данные и мьютексы