[Java 并发编程] 4. 相同线程


前言

相同线程是一个从单线程系统扩展到多个相同的单线程的系统的并发模型,结果是多个相同的线程在计算机中并行执行。

一个相同线程的系统不是纯粹的单线程系统,因为它包含多个线程,每个线程执行就像一个单线程系统,所以用相同线程或者同一线程命名更加合理。


一、为什么用单线程系统?

你可能会想为什么每个人都能设计出单线程系统。单线程系统受欢迎的原因是因为单线程系统的并发模型比多线程系统的并发模型更加简单。单线程系统线程之间不共享任何状态(对象/数据),单线程系统可以不使用任何并发数据结构,并且更好地利用CPU和CPU缓存。

遗憾的是,单线程系统不能很好的利用现代CPU,现代CPU通常情况下拥有多个CPU内核,每个CPU内核的功能就像一个独立的单核CPU,一个单线程系统只能利用CPU中的一个内核,模型如下:

在这里插入图片描述


二、相同线程(单线程系统的扩展)

为了充分的利用CPU的内核,一个单线程系统可以扩展到利用整个计算机。

一个CPU内核执行一个线程: 相同线程系统通常让计算机中每个CPU内核执行一个线程,如果一个计算机有4个CPU,每个CPU拥有4个CPU内核,让每个CPU内核执行一个线程的示例如下:
在这里插入图片描述


三、不共享状态(数据)

一个相同线程系统与传统的多线程系统相似,因为一个相同线程系统有多个线程同时执行,但是两者有一些区别。

相同线程系统与多线程系统不同的是相同线程系统不共享状态(或不共享数据),当产生并发访问时不共享数据,没有并发数据结构等等。
在这里插入图片描述

不共享数据让相同线程系统看上去像单线程系统。因为相同线程系统可以包含多个单线程,因此取名相同线程系统更加合理。

相同线程系统基本含义是进程同时包含处理多个相同的线程,在相同线程系统中并发时没有线程共享数据。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值