【操作系统】—— 线程(一)

18 篇文章 0 订阅
13 篇文章 0 订阅

多线程

1.线程(Thread)

(1)概念:系统调度资源的最小单位。

进程和线程的区别:

  • 进程:系统分配资源的最小单位;
  • 线程:系统调度资源的最小单位;
  • 线程是进程执行的最小单位,也是进程执行的实际单位。
  • 一个进程中最少包含一个线程;线程必须依附在进程当中。
  • 举例:进程就相当于一个工厂,线程就相当于一个一个流水线。
  • 进程不可以共享资源,而线程可以共享资源;

(2)线程可共享的资源:

  • 打开的文件;
  • 内存(对象);

(3)线程不可共享的资源:

  • 上下文;
  •  记账;
  •  状态信息;
  •  栈信息;

(4)线程(增加运行速度,提高性能)的数量并不是越多越好;

当线程的数量达到某个合适的值是最好的;如果有太多的线程,就会出现线程之间的争抢和CPU的过度调度问题,而且CPU的调度是需要消耗系统资源的,所以线程不是越多越好。

那多少线程是最好的?

需要看具体的应用场景,密集计算的   CPU任务 IO(文件读写)型任务;

当使用的场景是计算型任务时,线程的数量 == CPU的数量   时是最好的;

当使用场景是IO型任务时,理论上线程数量越多越好;

(5)并发编程:

进程——> 线程(轻量级的进程) ——>协程(轻量级的线程)

(6)线程的分类:

  • 后台线程——守护线程
  • 用户线程——默认线程

守护线程(isDaemon(true)):用来服务用户线程的;

进程退出:没有用户线程运行,进程就会结束;

守护线程的使用场景:Java 垃圾回收器;

守护线程的注意事项:守护线程设置必须在调用start()之前;

                                     在守护线程里面创建的线程,默认情况下全部都是守护线程;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值