64,668
社区成员
发帖
与我相关
我的任务
分享
using namespace std;
using namespace boost;
void *TrimNString(void *arg) {
string base ="fdsffdsafdsa";
for(int i = 0; i != 50000000;i++)
{
string str = base;
trim(str);
}
return 0;
}
int main()
{
//例如开8个线程
system("date");
pthread_t mythread1, mythread2, mythread3, mythread4, mythread5, mythread6, mythread7,mythread8;
pthread_create(&mythread1, NULL, TrimNString, NULL);
pthread_create(&mythread2, NULL, TrimNString, NULL);
pthread_create(&mythread3, NULL, TrimNString, NULL);
pthread_create(&mythread4, NULL, TrimNString, NULL);
pthread_create(&mythread5, NULL, TrimNString, NULL);
pthread_create(&mythread6, NULL, TrimNString, NULL);
pthread_create(&mythread7, NULL, TrimNString, NULL);
pthread_create(&mythread8, NULL, TrimNString, NULL);
pthread_join(mythread1, NULL);
pthread_join(mythread2, NULL);
pthread_join(mythread3, NULL);
pthread_join(mythread4, NULL);
pthread_join(mythread5, NULL);
pthread_join(mythread6, NULL);
pthread_join(mythread7, NULL);
pthread_join(mythread8, NULL);
system("date");
return 0;
}
/*
* test.cpp
*
* Created on: 2012-6-19
* Author: root
*/
#include<pthread.h>
#include <boost/algorithm/string.hpp>
#include <string>
#include <vector>
#include <cstdlib>
#include <iostream>
using namespace std;
using namespace boost;
void *TrimNString(void *arg) {
system("./TrimNString");//其中TrimNString的可执行文件请参照test3.cpp
return 0;
}
int main()
{
//进程trim实现方式
system("date");
pthread_t mythread1, mythread2, mythread3, mythread4, mythread5, mythread6, mythread7,mythread8;
pthread_create(&mythread1, NULL, TrimNString, NULL);
pthread_create(&mythread2, NULL, TrimNString, NULL);
pthread_create(&mythread3, NULL, TrimNString, NULL);
pthread_create(&mythread4, NULL, TrimNString, NULL);
pthread_create(&mythread5, NULL, TrimNString, NULL);
pthread_create(&mythread6, NULL, TrimNString, NULL);
pthread_create(&mythread7, NULL, TrimNString, NULL);
pthread_create(&mythread8, NULL, TrimNString, NULL);
pthread_join(mythread1, NULL);
pthread_join(mythread2, NULL);
pthread_join(mythread3, NULL);
pthread_join(mythread4, NULL);
pthread_join(mythread5, NULL);
pthread_join(mythread6, NULL);
pthread_join(mythread7, NULL);
pthread_join(mythread8, NULL);
system("date");
return 0;
}
#include<pthread.h>
#include <boost/algorithm/string.hpp>
#include <string>
#include <vector>
#include <cstdlib>
#include <iostream>
using namespace std;
using namespace boost;
//生成可执行文件TrimNString供test2.cpp调用
int main()
{
string base ="fdsffdsafdsa";
for(int i = 0; i != 50000000;i++)
{
string str = base;
trim(str);
}
return 0;
}
#include<pthread.h>
#include <boost/algorithm/string.hpp>
#include <string>
#include <vector>
#include <cstdlib>
#include <iostream>
using namespace std;
using namespace boost;
void ltrim(string & str)
{
if(str.find_first_not_of(" \n\r\t") != string::npos)
{
str = str.substr(str.find_first_not_of(" \n\r\t"));
}
}
void rtrim(string & str)
{
if(str.find_first_not_of(" \n\r\t") != string::npos)
{
str = str.substr(0, str.find_last_not_of(" \n\r\t") + 1);
}
}
void trimStr(string &str)
{
ltrim(str);
rtrim(str);
}
void *TrimNString(void *arg) {
string base ="fdsffdsafdsa";
for(int i = 0; i != 50000000;i++)
{
string str = base;
trimStr(str);
}
return 0;
}
int main()
{
//例如开8个线程
system("date");
pthread_t mythread1, mythread2, mythread3, mythread4, mythread5, mythread6, mythread7,mythread8;
pthread_create(&mythread1, NULL, TrimNString, NULL);
pthread_create(&mythread2, NULL, TrimNString, NULL);
pthread_create(&mythread3, NULL, TrimNString, NULL);
pthread_create(&mythread4, NULL, TrimNString, NULL);
pthread_create(&mythread5, NULL, TrimNString, NULL);
pthread_create(&mythread6, NULL, TrimNString, NULL);
pthread_create(&mythread7, NULL, TrimNString, NULL);
pthread_create(&mythread8, NULL, TrimNString, NULL);
pthread_join(mythread1, NULL);
pthread_join(mythread2, NULL);
pthread_join(mythread3, NULL);
pthread_join(mythread4, NULL);
pthread_join(mythread5, NULL);
pthread_join(mythread6, NULL);
pthread_join(mythread7, NULL);
pthread_join(mythread8, NULL);
system("date");
return 0;
}
NAME
pthread_setaffinity_np, pthread_getaffinity_np - set/get CPU affinity of a thread
SYNOPSIS
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <pthread.h>
int pthread_setaffinity_np(pthread_t thread, size_t cpusetsize,
const cpu_set_t *cpuset);
int pthread_getaffinity_np(pthread_t thread, size_t cpusetsize,
cpu_set_t *cpuset);
Compile and link with -pthread.
NAME
sched_setaffinity, sched_getaffinity - set and get a process’s CPU affinity mask
SYNOPSIS
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <sched.h>
int sched_setaffinity(pid_t pid, size_t cpusetsize,
cpu_set_t *mask);
int sched_getaffinity(pid_t pid, size_t cpusetsize,
cpu_set_t *mask);
NAME
sysconf - Get configuration information at runtime
SYNOPSIS
#include <unistd.h>
long sysconf(int name);
- _SC_NPROCESSORS_CONF
The number of processors configured.
- _SC_NPROCESSORS_ONLN
The number of processors currently online (available).