热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

知了堂分享java多线程共享数据

知了堂姐
2024-07-09 11:12:24
0
在 Java 传统线程机制中的共享数据方式,大致可以简单分两种情况:
➢ 多个线程行为一致,共同操作一个数据源。也就是每个线程执行的代码相同,可以使用同一个 Runnable 对象,这个 Runnable 对象中有那个共享数据,例如,卖票系统就可以这么做。
➢ 多个线程行为不一致,共同操作一个数据源。也就是每个线程执行的代码不同,这时候需要用不同的Runnable 对象。例如,银行存取款。
下面我们分别说明这两种方式。
1. 多个线程行为一致共同操作一个数据
如果每个线程执行的代码相同,可以使用同一个 Runnable 对象,这个 Runnable 对象中有那个共享数据,例如,买票系统就可以这么做
2.多个线程行为不一致共同操作一个数据
如果每个线程执行的代码不同,这时候需要用不同的 Runnable 对象,有如下两种方式来实现这些 Runnable 对象之间的数据共享:
1) 将共享数据封装在另外一个对象中,然后将这个对象逐一传递给各个 Runnable 对象。每个线程对共享数据的操作方法也分配到那个对象身上去完成,这样容易实现针对该数据进行的各个操作的互斥和通信。
2) 将这些 Runnable 对象作为某一个类中的内部类,共享数据作为这个外部类中的成员变量,每个线程对共享数据的操作方法也分配给外部类,以便实现对共享数据进行的各个操作的互斥和通信,作为内部类的各个Runnable 对象调用外部类的这些方法。
当线程并发执行时,由于资源共享和线程协作,使用线程之间会存在以下两种制约关系。
1. 间接相互制约。一个系统中的多个线程必然要共享某种系统资源,如共享 CPU,共享 I/O 设备,所谓间接相互制约即源于这种资源共享,打印机就是最好的例子,线程 A 在使用打印机时,其它线程都要等待。
2. 直接相互制约。这种制约主要是因为线程之间的合作,如有线程 A 将计算结果提供给线程 B 作进一步处理,那么线程 B 在线程 A 将数据送达之前都将处于阻塞状态。间接相互制约可以称为互斥,直接相互制约可以称为同步,对于互斥可以这样理解,线程 A 和线程 B 互斥访问某个资源则它们之间就会产个顺序问题——要么线程 A 等待线程 B 操作完毕,要么线程 B 等待线程操作完毕,这其实就是线程的同步了。因此同步包括互斥,互斥其实是一种特殊的同步。

大家都在看

Java对日开发成趋势?网友:找工作打开了新思路

2024-07-09 浏览次数:0

网络安全入门困难?你可能漏掉了这门课程!

2024-07-09 浏览次数:0

网络安全工程师培训怎么选?网课还是线下班?

2024-07-09 浏览次数:0

鸿蒙开发培训多少钱?投资未来,价值无限

2024-07-09 浏览次数:0

女生适合做等保测评师吗?等保测评工作内容

2024-07-09 浏览次数:0

Java短期培训需要学多久?学完能不能就业?

2024-07-09 浏览次数:0
最新资讯
Java工程师薪资待遇怎么样—...   Java工程师薪资待遇怎么样?Java编程的薪水还是很不错的,如果有不懂的话,我们可以通过很多途...
汇智知了堂考试认证 | 太棒了...   国家信息安全水平考试(NISP一级)  2024年3月考试成绩发布  通过的学员由中国信息安全测...
CISP证书报名费多少,一年考...   随着网络安全领域的快速发展,越来越多的人选择加入这个行业,而CISP证书作为国内最权威的网络安全...
知了汇智网络安全74部开班啦   随着网络技术的迅速扩展和全面渗透,网络安全问题日益凸显,网络安全人才缺口已成为制约行业发展的关键...
知了汇智实训课程及系列讲座,走...   产教融合是推动教育与产业发展紧密结合的重要途径,校企合作则是实现产教融合的关键。  为进一步优化...
知了汇智联合吉利学院开展师资培...   在数字化转型的时代,新业态的涌现和融合成为经济和社会发展的显著特征。然而,随着新业态的普及,网络...
网络安全工程师证书多少钱?   在数字化浪潮席卷全球的今天,网络安全问题日益凸显,网络安全工程师成为了备受瞩目的职业。而获得网络...
全栈工程师需要学什么?全栈工程...   随着互联网技术的飞速发展,企业对全栈工程师的需求也越来越高。全栈工程师,顾名思义,是指具备全方面...