当前位置:  技术问答>linux和unix

求高手详解 linux多线程的若干问题 ,高分相送

    来源: 互联网  发布时间:2015-10-02

    本文导语:  本人的毕业论文,linux多线程方面的,现在有几个问题,一直不能得到很好的解答,特来求教 待论文完成,我会贴出来分享,希望高手们不吝赐教,好让初学者共同进步。 1。linux 到底有几种支持多线程的方法? clo...

本人的毕业论文,linux多线程方面的,现在有几个问题,一直不能得到很好的解答,特来求教
待论文完成,我会贴出来分享,希望高手们不吝赐教,好让初学者共同进步。

1。linux 到底有几种支持多线程的方法? clone 和 pthraed 除外
2。为什么clone的使用非常少,难道是仅仅因为clone移植性不好吗
3。很多资料说linux没有真正的线程,是因为linux系统本身没有提供完整线程控制系统,还是因为
   pthread是外来的用户级线程包呢?

分不够的话可以再加,如果讨论热烈,本人准备送出 1k 的分

|
我来说说我的理解吧。首先是一个基础知识:进程是资源管理的最小单位,线程是程序执行的最小单位。一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如cpu、内存、文件等等),而将线程分配到某个cpu上执行。
1:回答你的第一个问题,pthread就是Linux系统下的多线程遵循POSIX线程接口,因此只有这一种机制。
2:回答第二个问题:pthread的实现是通过系统调用clone()来实现的,因此大家多是直接用threads线性库。
3:第三个问题:这个问题比较复杂,我多说两句。
  (1)真正的支持多线程的OS如UNIX,solaris等,其内核都是既支持进程也支持线程,因此就可以实现线程-进程的"多对多"模型,即一个进程的某个线程由核内调度,而同时它也可以作为用户级线程池的调度者,选择合适的用户级线程在其空间中运行。这是POSIX1003.1c标准的线程模型
 (2)linux为了简单,采用的是线程-进程"一对一"模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。 
 (3)这种简化机制有许多不足,因此说Linux没有实现真正的多线程机制。主要谈以下两点:
    一:最大的不足是进程id问题。按照POSIX定义,同一进程的所有线程应该共享一个进程id和父进程id,这在目前的"一对一"模型下是无法实现的。在源码阅读者看来,就是Linux内核的clone()没有实现对CLONE_PID参数的支持。 
  二:信号处理问题。由于异步信号是内核以进程为单位分发的,而LinuxThreads的每个线程对内核来说都是一个进程,且没有实现"线程组",因此,某些语义不符合POSIX标准,比如没有实现向进程中所有线程发送信号。

我就知道这些了,呵呵。其他的请别的高手来回答吧。线程这块我做的还是较少。

 

|
pthread其实是对接口的要求,而不是对实现的要求,只要有一个符合pthread要求的库,理论上就可以移植……

NGPT这个东西IBM早停了,现在到www.kernel.org上面找到的kernel里面应该都有NTPL了……

所以可以说现在的Linux下面已经有真正的线程了……NTPL我没有仔细研究过,不太清楚到底是如何实现的。应该不是纯粹用户空间的thread的话(就是早期的Linux Thread那种方法),也不太应该是LWP,这样的话还是会残留process的痕迹。

|
1。linux 就一种支持多线程的方法,还是进程模拟线程
2。因为clone比较低层,不好用,一般人也不会用
3。linux确实没有真正的线程,因为linux系统本身没有提供完整线程控制系统。

|
学习一下

|
mark

|
mark 
等下文

|
https://www.captech.com.cn/viewtopic.php?t=69

    
 
 

您可能感兴趣的文章:

  • 一个线程问题,很困惑,高手帮个忙
  • 网络通讯和多线程问题 请高手相助!献上100分
  • 我只有这么多分了,请多线程高手帮一下!!!!!!!
  • Linux 多线程出现段错误 高手请进啊!
  • 请教高手,线程问题,怎样暂停或杀掉多线程?
  • 高手请进:linux 多线程占用内存问题
  • Linux线程阻塞问题 高手请进
  • 关于线程的问题,还请各位高手们能帮着看看
  • 入门,请教线程编程的问题,请各路高手帮帮忙
  • 复杂的线程同步问题,请教高手
  • 高手请看过来,我有些问题,我是新手.关于线程的!
  • 有没有使用过Linux下线程池技术的高手,请为我指点迷津!!!
  • 请linux下多线程编程的高手进来下
  • 急需关于linux多线程的代码工程实例-高手请进啊
  • 请问关于socket客户端因事件启动新线程的问题.高手请进
  • 请高手指点,多线程程序,如何调试找出 SIGSGEV 发生的位置?
  • 问个管理线程的问题-高手赐教
  • 请问高手LInux 下的进程、线程的切换具体是如何实现的?
  • Liunx多进程,多线程编程高手进来
  • java开源软件 iis7站长之家
  • 高分请高手,高手定能解决
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • sun solaris中存在的telnet问题?急!急!急!急!请高手指点,高分相赠!
  • 高分,高手
  • 高分送高手
  • 高分寻求JSP/Servlet写的聊天室源代码?请各位高手帮忙!
  • 请高手推荐好书(清底高分)
  • 高分请教高手:我的汉字输入法都不能用了
  • 内核启动错误,高分请高手指点。。。
  • 呼唤qt高手(高分)---------
  • 高分送高手,请教字节数组问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 在dos下用bc31挑战高手******开发mssql程序,连接时报link err:undefined symbol GETNOTE in module DBEXTERN?(挑战高手)
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 关于我对linux高手用yum,非高手用源码的理由
  • 高手救命,很急——ORACLE817安装在UNIXWARE711上,手工启动数据库后在netasst中连接错误,高手帮我看看?
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 我是新手,高手,高手,快来救我
  • EJB问题,请教高手(非高手莫进)
  • 请各位JAVA高手,网业高手看过来,我把能给的分都送出!!!只能给37分,哎!!
  • eWEEK沙龙征集高手座谈
  • 高手请进,中文乱码问题,这是我同一个问题的第五个帖子了,大伙帮忙,心情好郁闷.期待高手.
  • [纳闷贴]为什么那么多人非说要成为高手就不要用X,难道Linux就是为了成为高手用的?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3