Linux从内核2.6开始使用NPTL(Native POSIX Thread Library)支持,但这时线程本质上还轻量级进程。 Native POSIX Thread Library(NPTL)是Linux内核中实践POSIX Threads标准的库。POSIX线程(英语:POSIX Threads,常被缩写为Pthreads)是POSIX的线程标准,定义了创建和 *** 纵线程的一套API。实现POSIX 线程标准的库常被称作Pthreads
Pthreads定义了一套C语言的类型、函数与常量,它以pthread.h头文件和一个线程库实现。
Pthreads API中大致共有100个函数调用,全都以"pthread_"开头,并可以分为四类:
线程管理,例如创建线程,等待(join)线程,查询线程状态等。
互斥锁(Mutex):创建、摧毁、锁定、解锁、设置属性等 *** 作
条件变量(Condition Variable):创建、摧毁、等待、通知、设置与查询属性等 *** 作
使用了互斥锁的线程间的同步管理
Java里的线程是由JVM来管理的,它如何对应到 *** 作系统的线程是由JVM的实现来确定的。Linux 2.6上的HotSpot使用了NPTL机制, JVM线程跟内核轻量级进程有一一对应的关系 。线程的调度完全交给了 *** 作系统内核,当然jvm还保留一些策略足以影响到其内部的线程调度,举个例子,在linux下,只要一个Thread.run就会调用一个fork产生一个线程。
Java线程在Windows及Linux平台上的实现方式,现在看来,是内核线程的实现方式。这种方式实现的线程,是直接由 *** 作系统内核支持的——由内核完成线程切换,内核通过 *** 纵调度器(Thread Scheduler)实现线程调度,并将线程任务反映到各个处理器上。内核线程是内核的一个分身。程序一般不直接使用该内核线程,而是使用其高级接口,即轻量级进程
创建用户级线程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)