linux线程同步与阻塞,linux多线程编程之同步与互斥实例讲解 避免阻塞,大家知道,单...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

一、 为什么要用多线程技术?

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值