linux多进程优先级,Linux多线程之优先级

1、多线程的作用: 即什么情况考虑使用多线程?

2、多线程的创建: 默认参数创建即可!pthread_create(&tid,NULL,(void *)thread_func,NULL);

3、多线程的同步: 掌握互斥,条件  两种同步方式即可!

表 1. 线程函数列表

对象

操作

Linux Pthread API

Windows SDK 库对应 API

线程

创建

pthread_create

CreateThread

退出

pthread_exit

ThreadExit

等待

pthread_join

WaitForSingleObject

互斥锁

创建

pthread_mutex_init

CreateMutex

销毁

pthread_mutex_destroy

CloseHandle

加锁

pthread_mutex_lock

WaitForSingleObject

解锁

pthread_mutex_unlock

ReleaseMutex

条件

创建

pthread_cond_init

CreateEvent

销毁

pthread_cond_destroy

CloseHandle

触发

pthread_cond_signal

SetEvent

广播

pthread_cond_broadcast

SetEvent / ResetEvent

等待

pthread_cond_wait / pthread_cond_timedwait

SingleObjectAndWait

但我还有一个问题:

4、主线程是否比默认创建的线程优先级更高?

我用如下测试代码及运行结果说明问题:

#include

#include

#include

#include

void Thread_1()

{

printf("%s  pid :0x%x, tid :0x%x \n",__func__,  getpid(), (int)pthread_self());

int i=0,j=0;

while(1)

{

for(j=1;j<5000000;j++)

{

}

//sleep(1); // 删除sleep,每个线程都全力运行!

i++;

printf("%s,  %d\n", __func__, i);

}

}

void Thread_2()

{

printf("%s  pid :0x%x, tid :0x%x \n",__func__,  getpid(), (int)pthread_self());

int i=0,j=0;

while(1)

{

for(j=1;j<5000000;j++)

{

}

//sleep(1);

i++;

printf("%s,  %d\n", __func__, i);

}

}

void Thread_3()

{

printf("%s  pid :0x%x, tid :0x%x \n",__func__,  getpid(), (int)pthread_self());

int i=0,j=0;

while(1)

{

for(j=1;j<5000000;j++)

{

}

//sleep(1);

i++;

printf("%s,  %d\n", __func__, i);

}

}

void Thread_main()

{

printf("%s  pid :0x%x, tid :0x%x \n",__func__,  getpid(), (int)pthread_self());

int i=0,j=0;

while(1)

{

for(j=1;j<5000000;j++)

{

}

//sleep(1);

i++;

printf("%s,  %d\n", __func__, i);

}

}

int main()

{

pthread_t ppid1,ppid2,ppid3;

printf("%s  pid :0x%x, tid :0x%x \n",__func__,  getpid(), (int)pthread_self());

pthread_create(&ppid1,NULL,(void *)Thread_1,NULL);

pthread_create(&ppid2,NULL,(void *)Thread_2,NULL);

pthread_create(&ppid3,NULL,(void *)Thread_3,NULL);

Thread_main();

return 0;

}

编译执行结果如下:

$gcc test.c -lpthread

$ ./a.out

删除sleep,每个线程都全力运行!

运行结果可以看出:主线程没有明显的级别优先。

应避免使用“父线程”和“子线程”的说法

main  pid :0x71c5, tid :0x65bfa720

Thread_2  pid :0x71c5, tid :0x64c4b700

Thread_main  pid :0x71c5, tid :0x65bfa720

Thread_1  pid :0x71c5, tid :0x6544c700

Thread_3  pid :0x71c5, tid :0x6444a700

Thread_main,  1

Thread_3,  1

Thread_1,  1

Thread_2,  1

Thread_main,  2

Thread_3,  2

Thread_1,  2

Thread_main,  3

Thread_2,  2

Thread_3,  3

Thread_main,  4

Thread_1,  3

Thread_2,  3

Thread_main,  5

Thread_3,  4

Thread_1,  4

Thread_main,  6

Thread_2,  4

Thread_3,  5

Thread_main,  7

Thread_1,  5

Thread_2,  5

Thread_3,  6

Thread_main,  8

Thread_1,  6

Thread_2,  6

Thread_main,  9

Thread_3,  7

Thread_1,  7

Thread_main,  10

Thread_2,  7

Thread_3,  8

Thread_main,  11

Thread_1,  8

Thread_2,  8

Thread_main,  12

Thread_3,  9

Thread_1,  9

Thread_2,  9

Thread_main,  13

Thread_3,  10

Thread_1,  10

Thread_main,  14

Thread_2,  10

Thread_3,  11

Thread_1,  11

Thread_main,  15

Thread_2,  11

Thread_3,  12

Thread_main,  16

Thread_1,  12

Thread_2,  12

Thread_main,  17

Thread_3,  13

Thread_2,  13

Thread_main,  18

Thread_3,  14

Thread_1,  13

Thread_2,  14

Thread_main,  19

Thread_3,  15

Thread_1,  14

Thread_2,  15

Thread_main,  20

Thread_3,  16

Thread_main,  21

Thread_2,  16

Thread_1,  15

Thread_main,  22

Thread_3,  17

Thread_2,  17

Thread_main,  23

Thread_1,  16

Thread_3,  18

Thread_2,  18

Thread_main,  24

Thread_1,  17

Thread_2,  19

Thread_3,  19

Thread_main,  25

Thread_3,  20

Thread_2,  20

Thread_main,  26

Thread_1,  18

Thread_main,  27

Thread_2,  21

Thread_3,  21

Thread_1,  19

Thread_main,  28

Thread_2,  22

Thread_3,  22

Thread_main,  29

Thread_1,  20

Thread_3,  23

Thread_2,  23

Thread_main,  30

Thread_1,  21

Thread_2,  24

Thread_3,  24

Thread_main,  31

Thread_1,  22

Thread_main,  32

Thread_3,  25

Thread_2,  25

Thread_main,  33

Thread_1,  23

Thread_2,  26

Thread_3,  26

Thread_main,  34

Thread_1,  24

Thread_3,  27

Thread_2,  27

Thread_main,  35

Thread_1,  25

Thread_2,  28

Thread_main,  36

Thread_3,  28

Thread_main,  37

Thread_1,  26

Thread_3,  29

Thread_2,  29

Thread_main,  38

Thread_1,  27

Thread_3,  30

Thread_main,  39

..........

Thread_main,  3736 Thread_2,  3671 Thread_1,  2888 Thread_main,  3737 Thread_3,  2840 Thread_2,  3672

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Facebook最新对抗学习研究:无需「平行语料库」完成「无监督」机器翻译

来源&#xff1a;雷克世界 编译&#xff1a;嗯~阿童木呀、多啦A亮 概要&#xff1a;得益于最近在深度学习方面取得的进展以及大规模平行语料库的可用性&#xff0c;现如今&#xff0c;机器翻译已经在多个语言对上取得了令人印象深刻的表现。 相信大家都知道&#xff0c;最近在机…

linux的软件很大,linux软件raid10,机器相同,结果差异很大

我在两台相同的机器上拥有完全不同的软件raid10性能和行为.我有两台硬件相同的机器,同时购买,具有相同的软件版本,硬件版本和固件版本.每个都有一个带有8 x 6 Gb / s通道的SAS控制器连接到SAS机箱,该机箱可容纳12个SAS磁盘.在机器1上,它是稳定的并且似乎工作正常,raid阵列中的每…

结合脑成像技术与人工智能,破除自杀的“诅咒”

来源&#xff1a;36氪 概要&#xff1a;近日发表的一项研究&#xff0c;介绍了一种通过人工智能与脑成像技术结合的方法来预测自杀倾向的方法。在初步的试验中&#xff0c;准确率达到了91%。 自杀已经成为了一个公共健康领域的“诅咒”&#xff0c;正在夺取越来越多的生命。在很…

Linux软件安装部署文档,MetaQ安装部署文档

一&#xff0e;MetaQ安装部署情况&#xff1a;地点IPBroker IDMaster/SlaveSlave ID:Group合肥192.168.52.231Slave1:meta-slave-group-hf北京192.168.51.331Master/广州192.168.70.1571Slave2:meta-slave-group-gz二&#xff0e;MetaQ安装1. 前提已有安装了ZooKeeper的机器&am…

美媒:中关村取代硅谷获评全球最大科技中心

来源&#xff1a;澎湃 概要&#xff1a;北京被评为2017年度全球最大科技城市第一名&#xff0c;中关村已取代硅谷成为全球最大的科技中心。 美媒称&#xff0c;一份最新报告显示&#xff0c;北京被评为2017年度全球最大科技城市第一名&#xff0c;中关村已取代硅谷成为全球最大…

linux 和服务通讯,Android 的Activity和Service之间的通信

在Android中Activity负责前台界面展示&#xff0c;service负责后台的需要长期运行的任务。Activity和Service之间的通信主要由IBinder负责。在需要和Service通信的Activity中实现ServiceConnection接口&#xff0c;并且实现其中的onServiceConnected和onServiceDisconnected方法…

【MLA首日报告摘要】周志华、马毅等教授分享机器学习最新进展

来源&#xff1a;专知 概要&#xff1a;第15届中国机器学习及其应用研讨会今天11月4日在北京交通大学举行&#xff0c;海内外从事机器学习及相关领域研究的10余位专家与会进行学术交流。 第15届中国机器学习及其应用研讨会今天11月4日在北京交通大学举行&#xff0c;海内外从事…

linux汇编字符长怎么看,linux – 在内联GNU汇编程序中获取字符串长...

使用GCC的内联asm来学习汇编的问题在于你花了一半的时间来学习gcc的内联汇编是如何工作的,而不是实际学习汇编.例如,这是我如何编写相同的代码&#xff1a;#include int getStringLength(const char *pStr){int len;__asm__ ("repne scasb""not %%ecx"&quo…

埃森哲5G智慧城市报告:美国GDP将狂增5千亿

来源&#xff1a;智东西 概要&#xff1a;第五代通信技术将不仅仅带来网速的提高&#xff08;eMBB&#xff09;&#xff0c;更意味着可靠的低延时&#xff08;uRLLC&#xff09;海量物联网&#xff08;mMTC&#xff09;。 5G被认为是万物互联的开始。第五代通信技术将不仅仅带来…

linux 信号发生器,用STM32实现函数信号发生器

自己慢慢看&#xff0c;&#xff0c;&#xff0c;&#xff0c;[mw_shl_codec,true]#ifndef __BSP_WAVEMAKER_H#define __BSP_WAVEMAKER_H#include "stm32f10x.h"#define DAC_DHR12RD_Address 0x40007420#define DAC_DHR8R1_Address 0x40007410#define DAC_DHR12R1_Ad…

星际旅行、返老还童…1.3万字看完今年的WE大会,简直就是一部科幻电影

来源&#xff1a;腾讯科技 概要&#xff1a;在第五届WE大会上&#xff0c;科学家们的“脑洞”更大了&#xff1a;星际旅行、返老还童等一个个过去科幻电影里的镜头出现了。 11月5日&#xff0c;WE大会在老时间、老地点如约而至。 时光飞速&#xff0c;WE大会如今已经是第五届了…

gdp笔记本 linux,linux中如何使用微软鼠标的第4、5键

虽说使用的人大都对微软没什么好感&#xff0c;但不能否认微软确实也出了不少好东西呀&#xff0c;比如微软鼠标(IE系列) icon_smile.gif IE2.0和以上版本都有5个按钮&#xff0c;除了正常的左中右外&#xff0c;两侧还各有一个&#xff0c;在windows中可用来支持浏览器的前进/…

智能优化算法应用:基于战争策略算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于战争策略算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于战争策略算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.战争策略算法4.实验参数设定5.算法结果6.…

从芯片巨头沦落到收购对象 高通是怎样失去魔力的?

来源&#xff1a;凤凰科技 概要&#xff1a;过去5年&#xff0c;高通股价几乎是原地踏步&#xff0c;而其他科技公司的股价却一直在快速上涨。 据《福布斯》北京时间11月6日报道&#xff0c;在华尔街&#xff0c;高通已经失去昔日魔力。过去5年&#xff0c;高通股价几乎是原地踏…

zynq linux网口不通,已解决: ZYNQ 7035以太网口无法连通 - Community Forums

网口使用emio连接mii phy芯片&#xff0c;lwIP Echo Server测试例子可以运行&#xff0c;u-boot&#xff0c;linux无法连ping通&#xff0c;能识别到芯片&#xff1b;我该如何配置u-boot与内核&#xff1f;关键打印信息&#xff1a;U-Boot 2019.01 (May 20 2020 - 05:49:03 000…

2017年中国人工智能产业专题研究报告(完整版)

来源&#xff1a;数据观 概要&#xff1a;目前&#xff0c;中国的人工智能研究处于爆发期&#xff0c;行业巨头公司正逐渐完善自身在人工智能的产业链布局&#xff0c;而不断涌现出的创业公司将持续在垂直领域深耕深挖。 目前&#xff0c;中国的人工智能研究处于爆发期&#x…

C语言的广泛作用的论文,关于c语言论文模板

该频道包含关于c语言论文模板和c语言的范例,免费为你学习关于c语言的论文提供相关参考文献资料。摘要&#xff1a;在一套试卷中&#xff0c;重复题问题是影响考试质量的一个重要因素。该文针對C语言试卷中选择题间易出现重复题问题进行深入研究 通过对代码相似性检测以及文。摘…

周志华:最新实验表明gcForest已经是最好的非深度神经网络方法

北京时间 11月5 日到11月6日&#xff0c;西瓜书《机器学习》作者、南京大学机器学习与数据挖掘研究所&#xff08;LAMDA&#xff09;周志华教授日前在MLA 2017上的演讲&#xff1a;深度森林初探——讲述的关于他最新集成学习研究成果-深度森林&#xff0c;一种对深度神经网络可…

C语言答案写成科学记数法,c语言科学记数法_C语言中、科学计数法123456e+002具体代表什么意思、或者说怎么理解这个数_淘题吧...

『壹』 c语言用double写了一个表示科学计数法的程序&#xff0c;但是却读不出来30位以上的数&#xff0c;怎么办double 是抄64 位(8字节)&#xff0c;52 位代表有袭效数位&#xff0c;11 位表示指数&#xff0c;一位表示符号&#xff0c;精度(有效数位)十进制的 16 位。int64 的…

中国工程程院院士高文:从大数据科学到人工智能的迁移过程

概要&#xff1a;中国工程程院院士、北京大学教授高文应邀参加JDD京东金融全球数据探索者大会&#xff0c;并进行了以“探索大数据&#xff0c;迎接人工智能时代”为主题的演讲。 来源&#xff1a;亿欧 11月6日&#xff0c;京东举行JDD京东金融全球数据探索者大会&#xff0c;在…