该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一、 为什么要用多线程技术?
1. 避免阻塞,大家知道,单个进程只有一个主线程,当主线程阻塞的时候,整个进程也就阻塞了,无法再去做其它的一些功能了。
2. 避免CPU空转,应用程序经常会涉及到RPC,数据库访问,磁盘IO等操作,这些操作的速度比CPU慢很多,而在等待这些响应时,CPU却不能去处理新的请求,导致这种单线程的应用程序性能很差。
3. 提升效率,一个进程要独立拥有4GB的虚拟地址空间,而多个线程可以共享同一地址空间,线程的切换比进程的切换要快得多。
二、 如何使用多线程技术进行编程?
首先给一个完整的多线程程序,以下是最简单的模拟火车票售票系统:
#include
#include
#include
#include
#include
void* ticketport1(void*);//线程函数声明
void* ticketport2(void*);//线程函数声明
int tickets=100; //火车票的起始值
int main()
{
pthread_t id1,id2;
int ret;
ret=pthread_create(&id1,NULL,ticketport1,NULL); //创建线程1
if(ret<0)
{
perror("creat thread1:");
exit(-1);
}
ret=pthread_create(&id2,NULL,ticketport2,NULL); //创建线程2
if(ret<0)
{
perror("creat thread2:");
exit(-1);
}
pthread_join(id1,NULL); //等待线程1结束
pthread_join(id2,NULL); //等待线程2结束
return 0;
}
未完...... 待续
更多:www.embedhq.org/html/jsbw/2013/1014/3559.html