满意答案

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()?相关推荐

  1. c语言dll创建线程,教大家写一个远程线程的DLL注入,其实还是蛮简单的……………………...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 然后新建一个win32 application 的工程 新建c++ source file 写入: #include #include int WINAP ...

  2. OS / Linux / clone、fork、vfork 与 pthread_create 创建线程有何不同

    进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽象成各种数据对象:进程控制块.虚存空间.文件系统,文件I/O.信号处理函数.所以创建一个进程的过程就是这些数 ...

  3. clone的fork与pthread_create创建线程有何不同pthread多线程编程的学习小结(转)

    进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽 象成各种数据对象:进程控制块.虚存空间.文件系统,文件I/O.信号处理函数.所以创建一个进程的 过程就是这 ...

  4. c语言Linux用线程创建文件,Linux环境下C语言线程创建---简单代码

    在Linux环境下用C语言编写线程创建. //file name: pthreadtext.c #include #include //线程头文件 //pthread不是linux下的默认的库,也就是 ...

  5. clone的fork与pthread_create创建线程有何不同pthread多线程编程的学习小结

    进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合,这些资源在Linux中被抽 象成各种数据对象:进程控制块.虚存空间.文件系统,文件I/O.信号处理函数.所以创建一个进程的 过程就是这 ...

  6. c语言 线程读写,C语言创建线程以及使用锁进行读写分离

    线程的使用 1.线程的创建 线程的相关操作放在中. 1.1我们定义一个线程,首先要进行定义一个函数,类似我们创建一个a线程 void *thread_a(void *in){ printf(" ...

  7. C语言用pthread.h创建线程

    C语言的线程库 pthread.h的API pthread.h的示例 C语言的线程库 在Linux系统上,可使用pthread.h的API创建线程.比如pthread_create(). pthrea ...

  8. c语言线程的创建步骤,C语言创建线程thread_create()的方法

    在头文件 threads.h 中,定义和声明了支持多线程的宏.类型和函数.所有直接与线程相关的标识符,均以前缀 thrd_ 作为开头.例如,thrd_t 是一个对象类型,它标识了一个线程. 函数 th ...

  9. 易语言创建线程挂起线程恢复线程销毁线程

    线程创建CreateThread,线程挂起SuspendThread,线程恢复ResumeThread,线程销毁TerminateThread,都是kernel32的命令,我们自己封装这些线程的命令, ...

最新文章

  1. Ubuntu 14.04 64位上安装Adobe reader 9.5.5
  2. Python3中的内置函数
  3. yii 清除mysql缓存_Yii2开启数据表结构缓存和清除
  4. Django 3.2.5博客开发教程:HelloWorld欢迎页面
  5. 空间统计分析_空间汇总统计分析的小技巧:构造单调函数
  6. 解题报告: LeetCode Max Points on a Line
  7. jQuery Callback 方法
  8. 2019年架构软考论文押题(一)
  9. java图片二值化_实现图像的二值化(java+opencv)
  10. C语言:一种高效、易学的编程语言
  11. 计算机电源接口图,电脑电源接口定义图解
  12. Monitor对象是什么?
  13. 你不是菜鸟2:他为什么没过试用期
  14. 计算机夏令营、预推免面试经验【北理cs,北航cs,复旦cs大数据,浙大cs】
  15. buck型三相PFC
  16. 古诗名句分类二:事理哲理
  17. error: cannot open Packages database in /var/lib/rpm
  18. UVA 11549 Calculator Conundrum 题解
  19. 0x00000709无法连接打印机怎么办?
  20. 网页编程软件:Coda 2 for Mac

热门文章

  1. vue-router 动态路由匹配
  2. 两个分布的特征映射_跨语言分布表示学习方法概述
  3. Python 进程间通信 Queue / Pipe - Python零基础入门教程
  4. BugkuCTF-MISC题三色绘恋
  5. linux的trace文件路径,linux系统分析工具之Blktrace(十)
  6. 计算机用户 图片存储位置,手机相册在哪个文件夹,详细教您手机图片存放在哪里...
  7. linux查看发起ddos攻击的ip,在Linux上使用netstat命令查证DDOS攻击的方法
  8. 2021谷饶中学高考成绩查询,高考成绩
  9. 两条直线求交点c语言,C§ 3.3.1两条直线的交点坐标(5页)-原创力文档
  10. 切片分析报告格式_社科论文写作101-APA数据分析结果报告格式