
多线程运行时有待措置线程?试试看下面介绍的这个批量线程同步体例吧
在一批线程措置轨范中 有时必需等到所有线程全数运行完后 才能进行下一步使命措置 可以采用如 *** 例解决 建树一个锁对象 该锁对象供给一个当前方程期待其他线程的体例 见代码
/**
*
* 此类首要用来措置线程的同步屏障模子 好比 一批线程运行 必需在最后一个线程运行
* 完后 才能进行下一步的 *** 作 那么就可以建树一个锁对象 锁对象供给一个线程期待其他线程
* 的体例 如不美观当前方程运行时 还有未运行的线程 则此线程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/11155Java 多线程的同步依靠的是对象锁机制,这个问题需要我们不断的学习相关的问题。下面我们就来详细的学习下如何才能更好的进行具体内容的使用。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多线程的详细代码介绍。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)