导航

2012年1月4日

摘要: sleep是线程被调用时,占着cpu去睡觉,其他线程不能占用cpu,os认为该线程正在工作,不会让出系统资源,wait是进入等待池等待,让出系统资源,其他线程可以占用cpu,一般wait不会加时间限制,因为如果wait的线程运行资源不够,再出来也没用,要等待其他线程调用notifyall方法唤醒等待池中的所有线程,才会在进入就绪序列等待os分配系统资源, sleep是静态方法,是谁调用的谁去睡觉,就算是在main线程里调用了线程b的sleep方法,实际上还是main去睡觉,想让线程b去睡觉要在b的代码中掉sleepsleep(100L)是占用cpu,线程休眠100毫秒,其他进程不能再占用cpu 阅读全文

posted @ 2012-01-04 22:18 网名还没想好 阅读(3811) 评论(2) 推荐(0) 编辑

摘要: 与fork()函数有所不同,fork()函数在创建一个子进程后,子进程的地址空间完全和父进程分开。父子进程是两个独立的进程,接受系统调度和分配的机会均等。因此父进程和子进程更像是一对兄弟。 而vfork()函数不同,vfork()函数产生的子进程和父进程完全共享地址空间,包括代码段,数据段和堆栈段。子进程对这些共享资源的修改会影响父进程,vfork()产生的更像是一个线程。再者,vfork()函数产生的进程一定比父进程先运行,子进程运行完了以后,父进程再运行。 看段代码:#include<stdio.h>#include<stdlib.h>#include<uni 阅读全文

posted @ 2012-01-04 21:28 网名还没想好 阅读(364) 评论(0) 推荐(0) 编辑