{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

Linux的多线程怎么理解?

mingzhongmingzhong 回答0 收藏1
收藏问题

6条回答

dabai

dabai

回答于2022-06-27 17:13

举个例子 有一千块砖要卸货,

单线程就是一个人干活。卸得慢

双线程就是两个人干活。卸货时间快了一倍

四线程就是4个人卸货。卸货时间快了4倍

评论0 赞同0
  •  加载中...
Taonce

Taonce

回答于2022-06-27 17:13

进程是同时进行,跟cpu核数有关系,线程是在同一个时间段轮流交替执行任务,可能线程A执行了一半卡住了,这时候线程B继续执行

评论0 赞同0
  •  加载中...
ygyooo

ygyooo

回答于2022-06-27 17:13

举个栗子,就是一个人能同时干多件事儿 ,劈柴的同时又喂马,两不耽误。多线程所有的数据都是共享的。

评论0 赞同0
  •  加载中...
lifefriend_007

lifefriend_007

回答于2022-06-27 17:13

Linux中多线程详解及简单实例

1.概念

进程:运行中的程序。 线程:一个程序中的多个执行路径。更准确的定义是:线程是一个进程内部的一个控制序列。



2.为什么要有线程?

用fork调用进程代价太高,需要让一个进程同时做多件事情,线程就非常有用。



3.线程的优点和缺点。

优点:

(1)有时,让程序看起来是在同时做两件事是非常有用的。 比如在编辑文档时,还能统计文档里的单词个数。

(2)一个混杂着输入、计算、输出的程序,利用线程可以将这3个部 分分成3个线程来执行,从而改变程序执行的性能。

(3)一般来说,线程之间切换需要操作系统所做的工作比进程间切换需要的代价小。

缺点:

(1)编写线程需要非常仔细的设计。

(2)对多线程的调试困难程度比单线程调试大得多。

4.创建线程



Linux系统支持POSIX多线程接口,称为pthread。

编写linux下的多线程程序,需要包含头文件pthread.h,链接时需要使用库libpthread.a。

如果在主线程里面创建线程,程序就会在创建线程的地方产生分支,变成两个部分执行。线程的创建通过函数pthread_create来完成。成功返回0。

一个简单的创建多线程的程序:

输出结果

以上就是Linux 多线程的实例详解,感谢阅读,希望能帮助到大家!

评论0 赞同0
  •  加载中...
whinc

whinc

回答于2022-06-27 17:13

例如程序的执行都是从main进程开始,如果在main创建多线程,比如线程1 2 3,那么CPU就会并发运行线程1 2 3 以及main ,互不影响

评论0 赞同0
  •  加载中...
Hwg

Hwg

回答于2022-06-27 17:13

Linux的线程是通过轻量化线程实现的,其实和普通进程没有本质的区别,但是线程之间的可以访问彼此的一些数据、段和文件等等。

轻量化进程是Linux用来解决单纯进程切换开销太大的问题,通过创建线程组的方式来将属于同一个进程的不同线程放在一起,实现部分数据共享,调度和通信在线程组里面都会非常方便和快速。

评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<