当前位置:   article > 正文

线程的创建pthread_create()函数(线程一)_pthread_create的堆分布

pthread_create的堆分布

一.并发 并行 同步 异步概念区别

并发:看起来像真正同时发生,实际并非同时发生,只不过是cpu的调度时间很快,单核系统中每一时刻只能执行一个进程,类似进程。

并行:真正意义上的同时发生,类似线程,但每个线程必须依赖于进程,(但按照操作系统理论严格来说,多线程并不是多个线程一起运行的.
因为多线程实际上是多个线程之间轮流执行的,就是将一个时间段分成若干个时间片,每个线程只运行一个时间片,由于时间片极短,而且电脑运行极快,线程之间切换也极快,几乎可以看做是并行运行的,也就是说可以看成是同时运行的.但实际却不是的同时运行的.

进程是执行程序的一次过程,程序是静态的,进程是动态的。

同步:不应该同时发生,阻止其同时发生(加锁)。

异步:独立的操作是异步,事情独立发生。

二.线程ID获取

pthread_self()

所以pthread_t是一个 无符号的长整数(Linux下),在mac下他是一个结构体

 

关于线程的程序编译时候必须链接 pthread这个库 –lpthread

三、线程创建

线程创建函数四个参数解释:

第一个参数:新线程ID,创建成功系统返回。

第二个参数:新线程的属性,NULL为默认属性。

第三个参数:新线程的启动函数 函数指针: 指向形参位void* 返回值为void*类型的函数的指针。

void* thread_fun(void)

第四个参数:传递给新线程。

四、 pthread_exit()函数

pthread_exit() 与return 的区别

pthread_exit返回给操作系统,主进程不会退出,新的线程才会执行。

return指直接返回给进程,如果是主进程,则新线程不会执行。

函数的形参是一个void *retval retval是一个操作系统回填。

五、线程的四个状态:

就绪、阻塞、运行、终止。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/181950?site
推荐阅读
相关标签
  

闽ICP备14008679号