蓝杰学习小结—线程

系统 1408 0

线程:一个独立的运行单位

31 号学习了线程,在此之前我编写的所有 Java 程序都只有一个主线程,而线程的加入可以让程序在主线程下加入分线程,让程序具备同时进行多项工作的可能

多线程 OS 中,通常是在一个 进程 中包括多个线程,每个线程都是作为利用 CPU 的基本单位,是花费最小开销的实体。线程具有以下属性。

1 )轻型实体

线程中的实体基本上不拥有 系统资源 ,只是有一点必不可少的、能保证独立 运行 的资源,比如,在每个线程中都应具有一个用于控制线程运行的 线程控制块 TCB ,用于指示被执行指令序列的 程序计数器 、保留 局部变量 、少数状态参数和 返回地址 等的一组 寄存器 堆栈

2 )独立调度和分派的基本单位。

在多线程 OS 中,线程是能独立 运行 的基本单位,因而也是独立调度和分派的基本单位。由于线程很 ,故线程的切换非常迅速且开销小(在同一 进程 中的)。

3 )可并发执行。

在一个 进程 中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行,充分利用和发挥了 处理机 与外围设备并行工作的能力。

4 )共享 进程 资源。

在同一 进程 中的各个线程,都可以共享该进程所拥有的资源,这首先表现在:所有线程都具有相同的 地址空间 (进程的地址空间),这意味着,线程可以访问该地址空间的每一个虚地址;此外,还可以访问进程所拥有的已打开 文件 、定时器、 信号量 机构等。由于同一个 进程 内的线程 共享内存 文件 ,所以线程之间互相通信不必调用 内核

 

 

这便是最简单的一个线程程序了,主程序下只有一个线程


蓝杰学习小结—线程
 

 

而这样就可以创建 5 个线程



 

而线程远不止这一种创建方法,还有通过内部类,通过 Runable 接口创建线程,通过 Timertask 创建等

其中Timertask提供了几种方法特别好用,比如scherule方法,他可以让线程在程序启动后n毫秒后启动

并隔m毫秒运行一次。
蓝杰学习小结—线程
 

蓝杰学习小结—线程


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论