JAVA认证:多线程的批量线程同步处理方案

JAVA认证:多线程的批量线程同步处理方案,第1张

线程运行时有待措置线程?试试看下面介绍的这个批量线程同步体例吧

在一批线程措置轨范中 有时必需等到所有线程全数运行完后 才能进行下一步使命措置 可以采用如 *** 例解决 建树一个锁对象 该锁对象供给一个当前方程期待其他线程的体例 见代码

/**

*

* 此类首要用来措置线程的同步屏障模子 好比 一批线程运行 必需在最后一个线程运行

* 完后 才能进行下一步的 *** 作 那么就可以建树一个锁对象 锁对象供给一个线程期待其他线程

* 的体例 如不美观当前方程运行时 还有未运行的线程 则此线程wait 否则 此线程叫醒其他梗阻的

* 线程 进而最终完成线程的运行

* */

public class LockObject {

private int totalThread =

private int currentThread =

public LockObject(int totalThread) {

this totalThread = totalThread

this currentThread =

}

lishixinzhi/Article/program/Java/gj/201311/11155

Java 多线程的同步依靠的是对象锁机制,这个问题需要我们不断的学习相关的问题。下面我们就来详细的学习下如何才能更好的进行具体内容的使用。synchronized关键字的背后就是利用了封锁来实现对共享资源的互斥访问。

下面以一个简单的实例来进行对比分析。实例要完成的工作非常简单,就是创建10个线程,每个线程都打印从0到99这100个数字,我们希望线程之间不会出现交叉乱序打印,而是顺序地打印。

先来看第一段代码,这里我们在run()方法中加入了synchronized关键字,希望能对run方法进行互斥访问,但结果并不如我们希望那样,这是因为这里synchronized锁住的是this对象,即当前运行线程对象本身。 Java 多线程代码中创建了10个线程,而每个线程都持有this对象的对象锁,这不能实现线程的同步。

Java多线程代码如下

1.package com.vista

2.class MyThread implements java.lang.Runnable

3.{

4.private int threadId

5.public MyThread(int id)

6.{

7.this.threadId = id

8.}

9.@Override

10.public synchronized void run()

11.{

12.for (int i = 0i <100++i)

13.{

14.System.out.println("Thread ID: " + this.threadId + " : " + i)

15.}

16.}

17.}

18.public class ThreadDemo

19.{

20./**

21.* @param args

22.* @throws InterruptedException

23.*/

24.public static void main(String[] args) throws InterruptedException

25.{

26.for (int i = 0i <10++i)

27.{

28.new Thread(new MyThread(i)).start()

29.Thread.sleep(1)

30.}

31.}

32.}

以上就是对Java多线程的详细代码介绍。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11713659.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存