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

public class TestThread {

public static void main(String[] args){

Map<Integer, Object>tables = new Hashtable<Integer, Object>()

Thread add = new Thread(new ThreadAdd(tables))

Thread del = new Thread(new ThreadDel(tables))

Thread count = new Thread(new ThreadCount(tables))

//启动线程

add.start()

del.start()

count.start()

}

/**

*添加对象线程

*/

private static class ThreadAdd implements Runnable{

private Map<Integer, Object>table

public ThreadAdd(Map<Integer, Object>tables){

this.table=tables

}

public void run() {

// TODO Auto-generated method stub

for(int i=0i<10i++){

table.put(i, new Object())

System.out.println("添加对象,序号为:"+i)

}

}

}

/**

*删除对象线程

*/

private static class ThreadDel implements Runnable{

private Map<Integer, Object>table

public ThreadDel(Map<Integer, Object>table){

this.table=table

}

public void run() {

// TODO Auto-generated method stub

for(int i=0i<10i++){

try {

Thread.sleep(100)

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

table.remove(i)

System.out.println("移除对象,序号为:"+i)

}

}

}

/**

*统计线程

*/

private static class ThreadCount implements Runnable{

private Map<Integer, Object>table

public ThreadCount(Map<Integer, Object>table){

this.table=table

}

public void run() {

// TODO Auto-generated method stub

for(int i=0i<10i++){

try {

Thread.sleep(50)

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

System.out.println("当前队列还剩"+table.size()+"个对象")

}

}

}

}

这是我的写的demo,不知道符合不符合你的意思,大家共同交流共同进步。


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

原文地址: http://outofmemory.cn/bake/11661783.html

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

发表评论

登录后才能评论

评论列表(0条)

保存