c语言fork()创建线程,操作系统的创建原语是fork()还是creat()?
满意答案
MythSwift
2013.09.10
采纳率:55% 等级:12
已帮助:9461人
一个进程就相当于一个主线程。
fork一个进程与create一个线程的区别:
fork进程:子进程复制父进程的进程环境。父进程结束不会影响子进程的运行。进程切换复制进程环境。
create线程:子线程共享父线程的线程环境。线程(一个主线程下的多个线程)切换不复制环境,所以线程运行快,省去了复制环境的时间。主线程运行结束,子线程的运行就无意义了。
子线程返回主线程的方法:
1.主线程等待子线程运行结束
2.用信号,比如说用主线程有一个全局变量 p=1,子线程有一 while(p) 一直在无限运行,这是主线程 p = 0,while(p) 子线程退出。
一个进程 create了几个线程,进程fork(),这是fork出的子进程不能复制父线程的线程,也就是说,fork出来的子进程只复制父现成的执行环境。
线程是一个执行体。
进程是运行环境+执行体。
----关于第二个问题----
sleep() 就是线程睡了 睡一顿时间 会自动唤醒
wait() 就是停下了 要另一个函数 【例如java里是 notify()】 来唤醒他
block() 才疏学浅 没听过
00分享举报
c语言fork()创建线程,操作系统的创建原语是fork()还是creat()?相关推荐
- c语言dll创建线程,教大家写一个远程线程的DLL注入,其实还是蛮简单的……………………...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 然后新建一个win32 application 的工程 新建c++ source file 写入: #include #include int WINAP ...
- OS / Linux / clone、fork、vfork 与 pthread_create 创建线程有何不同
进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽象成各种数据对象:进程控制块.虚存空间.文件系统,文件I/O.信号处理函数.所以创建一个进程的过程就是这些数 ...
- clone的fork与pthread_create创建线程有何不同pthread多线程编程的学习小结(转)
进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽 象成各种数据对象:进程控制块.虚存空间.文件系统,文件I/O.信号处理函数.所以创建一个进程的 过程就是这 ...
- c语言Linux用线程创建文件,Linux环境下C语言线程创建---简单代码
在Linux环境下用C语言编写线程创建. //file name: pthreadtext.c #include #include //线程头文件 //pthread不是linux下的默认的库,也就是 ...
- clone的fork与pthread_create创建线程有何不同pthread多线程编程的学习小结
进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽 象成各种数据对象:进程控制块.虚存空间.文件系统,文件I/O.信号处理函数.所以创建一个进程的 过程就是这 ...
- c语言 线程读写,C语言创建线程以及使用锁进行读写分离
线程的使用 1.线程的创建 线程的相关操作放在中. 1.1我们定义一个线程,首先要进行定义一个函数,类似我们创建一个a线程 void *thread_a(void *in){ printf(" ...
- C语言用pthread.h创建线程
C语言的线程库 pthread.h的API pthread.h的示例 C语言的线程库 在Linux系统上,可使用pthread.h的API创建线程.比如pthread_create(). pthrea ...
- c语言线程的创建步骤,C语言创建线程thread_create()的方法
在头文件 threads.h 中,定义和声明了支持多线程的宏.类型和函数.所有直接与线程相关的标识符,均以前缀 thrd_ 作为开头.例如,thrd_t 是一个对象类型,它标识了一个线程. 函数 th ...
- 易语言创建线程挂起线程恢复线程销毁线程
线程创建CreateThread,线程挂起SuspendThread,线程恢复ResumeThread,线程销毁TerminateThread,都是kernel32的命令,我们自己封装这些线程的命令, ...
最新文章
- Ubuntu 14.04 64位上安装Adobe reader 9.5.5
- Python3中的内置函数
- yii 清除mysql缓存_Yii2开启数据表结构缓存和清除
- Django 3.2.5博客开发教程:HelloWorld欢迎页面
- 空间统计分析_空间汇总统计分析的小技巧:构造单调函数
- 解题报告: LeetCode Max Points on a Line
- jQuery Callback 方法
- 2019年架构软考论文押题(一)
- java图片二值化_实现图像的二值化(java+opencv)
- C语言:一种高效、易学的编程语言
- 计算机电源接口图,电脑电源接口定义图解
- Monitor对象是什么?
- 你不是菜鸟2:他为什么没过试用期
- 计算机夏令营、预推免面试经验【北理cs,北航cs,复旦cs大数据,浙大cs】
- buck型三相PFC
- 古诗名句分类二:事理哲理
- error: cannot open Packages database in /var/lib/rpm
- UVA 11549 Calculator Conundrum 题解
- 0x00000709无法连接打印机怎么办?
- 网页编程软件:Coda 2 for Mac
热门文章
- vue-router 动态路由匹配
- 两个分布的特征映射_跨语言分布表示学习方法概述
- Python 进程间通信 Queue / Pipe - Python零基础入门教程
- BugkuCTF-MISC题三色绘恋
- linux的trace文件路径,linux系统分析工具之Blktrace(十)
- 计算机用户 图片存储位置,手机相册在哪个文件夹,详细教您手机图片存放在哪里...
- linux查看发起ddos攻击的ip,在Linux上使用netstat命令查证DDOS攻击的方法
- 2021谷饶中学高考成绩查询,高考成绩
- 两条直线求交点c语言,C§ 3.3.1两条直线的交点坐标(5页)-原创力文档
- 切片分析报告格式_社科论文写作101-APA数据分析结果报告格式