linux多进程.doc,linux多线程与多进程.doc

linux多线程与多进程.doc

74297d1b3f02652960a293851d34ca4b.gif

还剩

16页未读,

继续阅读

下载文档到电脑,马上远离加班熬夜!

亲,喜欢就下载吧,价低环保!

内容要点:

pthread_once(&once,once_run);printf("thread %d returns\n",tid);}int main(void){int tid1,tid2;printf("hello\n");pthread_create(&tid1,NULL,child1,NULL);pthread_create(&tid2,NULL,child2,NULL);sleep(10);p(2) 线程私有数据(3) 线程同步(4) 线程终止这是一个关于 Posix 线程编程的专栏。作者在阐明概念的基础上,将向您详细讲述 Posix 线程库 API。本文是第五篇将向您讲述 pthread_self()、pthread_equal()和pthread_once()等杂项函数。在 Posix 线程规范中还有几个辅助函数难以归类,暂且称其为杂项函数,主要包括 pthread_self()、}3. 线程终止的同步及其返回值一般情况下,进程中各个线程的运行都是相互独立的,线程的终止并不会通知,也不会影响其他线程,终止的线程所占用的资源也并不会随着线程的终止而得到释放。正如进程之间可以用 wait()系统调用来同步终止并释放资源一样,线程之间也有类似机制,那就是 pthread_join()函数。void pthread_exit(void *retval)int pthread_joi函数对用于自动释放资源--从 pthread_cleanup_push()的调用点到pthread_cleanup_pop()之间的程序段中的终止动作(包括调用 pthread_exit()和取消点终止)都将执行 pthread_cleanup_push()所指定的清理函数。API 定义如下:void pthread_cleanup_push(void (*routine) (void *), v调用 sigwait()期间,原来附接在该信号上的信号处理函数不会被调用。如果在等待期间接收到 Cancel 信号,则立即退出等待,也就是说 sigwait()被实现为取消点。五. 其他同步方式除了上述讨论的同步方式以外,其他很多进程间通信手段对于 LinuxThreads 也是可用的,比如基于文件系统的 IPC(管道、Unix 域 Socket 等) 、消息队列(Sys.V 或者Posix 的)为 EBUSY。除此之外,LinuxThreads 的信号灯注销函数不做其他动作。2. 点灯和灭灯int sem_post(sem_t * sem)点灯操作将信号灯值原子地加 1,表示增加一个可访问的资源。int sem_wait(sem_t * sem)int sem_trywait(sem_t * sem)sem_wait()为等待灯亮操作,等待灯亮(信号灯值大于 0) ,然后将信号灯原子地减pthread_create(&tid2,NULL,child2,NULL);do{sleep(2); /* comment 4 */pthread_cancel(tid1); /* comment 5 */sleep(2); /* comment 6 */pthread_cond_signal(&cond);}while(1);sleep(100);pthread_exit(0);}如果不做注释3. 其他pthread_cond_wait()和 pthread_cond_timedwait()都被实现为取消点,因此,在该处等待的线程将立即重新运行,在重新锁定 mutex 后离开 pthread_cond_wait(),然后执行取消动作。也就是说如果 pthread_cond_wait()被取消,mutex 是保持锁定状态的,因而需要定义退出回调函数来为其解锁。以下示例集中演示了互斥锁和条

发表评论

暂无评论,赶快抢占沙发吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值