JAVA 怎么实现多进程同步

在JAVA中怎么实现多个进程同步。进程的睡眠和唤醒方法各是什么,急求大侠,谢谢。谢谢、要看清楚哦,是进程哈,不是线程!... 在JAVA中怎么实现多个进程同步。进程的睡眠和唤醒方法各是什么,急求大侠,谢谢。谢谢、 要看清楚哦,是进程哈,不是线程! 展开
 我来答
匿名用户
2013-04-02
展开全部
你好,在Java中实现多个进程同步方法有两种,我就介绍通过继承Thread来实现线程来举例吧!第一种,创建一个Thread类的子类,在里面重写一个run()方法,然后在主线程main()方法里面创建几个类的对象,一个对象代表一个线程,然后通过start()方法启动线程。第二种,创建多个Thread类的子类,在里面重写一个run()方法,然后在主线程main()方法里面创建这些类的对象,一个对象代表一个线程,然后通过start()方法启动线程。两者的区别:第一种是多个线程同步完成一个任务,比如买票,第二种是不同线程完成不同的任务。intertupt()方法用来“吵醒”休眠的线程,sleep()方法让进程处于睡眠状态。答案不满意可以追问,想交流可以加我QQ:460148261,可以一起讨论。
wh猎人
推荐于2016-10-14 · TA获得超过1125个赞
知道大有可为答主
回答量:1157
采纳率:89%
帮助的人:665万
展开全部
// 一个多线程售票通过单一锁实现同步
package test.thread.multis;

import java.util.Random;

// 售票员
public class TicketSeller implements Runnable {
// 票据服务
public static class Ticks {
int ticks = 100;

public boolean hasTick() {
return ticks <= 100 && ticks > 0;
}

public int getTick() {
return ticks;
}

public void saleTick() {
ticks--;
}
}

Ticks ticks = new Ticks();

@Override
public void run() {//
try {
long waitNextUser = (long) ((new Random().nextFloat()) * 1000);
Thread.sleep(waitNextUser);// 加一个延迟等待,来模拟实际售票
} catch (InterruptedException e) {
return;// 出现问题了,不能再卖票了
}
synchronized (ticks) {// 锁定锁所有票据
if (ticks.hasTick()) {
String saler = Thread.currentThread().getName();
System.out.println(saler + " " + ticks.getTick());
ticks.saleTick();
}
}
if (ticks.hasTick()) {// 检查是否还可以买票
run();
}
}

public static void main(String[] args) {
TicketSeller n = new TicketSeller();
Thread m1 = new Thread(n, "售票员_1");
Thread m2 = new Thread(n, "售票员_2");
Thread m3 = new Thread(n, "售票员_3");
m1.start();
m2.start();
m3.start();
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2019-11-28
知道答主
回答量:2
采纳率:0%
帮助的人:1314
展开全部
进程间同步用filelock

filelock可以保证同一个时间只有一个进程获取file的锁,从而达到进程间同步的目的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-02
展开全部
进程不是线程???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式