编写一个Java应用程序,在主线程中再创建3个线程:“客车司机”、“乘客”和“售票员”。要求线程“客车司
编写一个Java应用程序,在主线程中再创建3个线程:“客车司机”、“乘客”和“售票员”。要求线程“客车司机”占有CPU资源后立刻联合线程“乘客”,也就是让线程“客车司机”...
编写一个Java应用程序,在主线程中再创建3个线程:“客车司机”、“乘客”和“售票员”。要求线程“客车司机”占有CPU资源后立刻联合线程“乘客”,也就是让线程“客车司机”一直等到线程“乘客”上车后才能开车;而线程“乘客”占有CPU资源后立刻联合线程“售票员”,也就是让线程“乘客”向线程“售票员”购票后才能下车。
展开
展开全部
乘客翻越栏杆?
这样的话,那他自己要承担主要责任
因为他的行为本身就有危险性,在知道有可能发生危险的情况下,还翻越栏杆,首先是自己对自己的不负责.
司机是在工作哦.工作中出的工作事故应该首先尤公司承担.
而且你所说的是.不慎滑入已启动的客车后轮致死.
像这种情况是不法挽回的.估计公交公司也不会承担太多.
希望大家能够吸取教训
这样的话,那他自己要承担主要责任
因为他的行为本身就有危险性,在知道有可能发生危险的情况下,还翻越栏杆,首先是自己对自己的不负责.
司机是在工作哦.工作中出的工作事故应该首先尤公司承担.
而且你所说的是.不慎滑入已启动的客车后轮致死.
像这种情况是不法挽回的.估计公交公司也不会承担太多.
希望大家能够吸取教训
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以考虑 wait , notify 机制
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
线程联合
public class TakeBus implements Runnable {
Thread driver, seller, passenger;
public TakeBus() {
driver = new Thread(this);
seller = new Thread(this);
passenger = new Thread(this);
}
public void run() {
if(Thread.currentThread() == driver) {
System.out.println("司机正在等待乘客上车");
try {
passenger.join();
}catch(InterruptedException e) {
}
System.out.println("司机开车");
}
if(Thread.currentThread() == passenger) {
System.out.println("乘客正在等待买票");
try {
seller.join();
}catch(InterruptedException e) {
}
for(int i = 0; i < 10; i++) {
System.out.println("第"+(i+1)+"位乘客正在上车");
try {
Thread.sleep(200);
}catch(InterruptedException e) {
}
}
System.out.println("十位乘客全部上车");
}
if(Thread.currentThread() == seller) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
for(int i = 0; i < 10; i++) {
System.out.println("售票员正在卖给第"+(i+1)+"位乘客票");
try {
Thread.sleep(500);
}catch(InterruptedException e) {
}
}
System.out.println("全部乘客已购买车票");
}
}
}
public class TakeBusDemo {
public static void main(String[] args) {
TakeBus t = new TakeBus();
t.driver.start();
t.passenger.start();
t.seller.start();
}
}
public class TakeBus implements Runnable {
Thread driver, seller, passenger;
public TakeBus() {
driver = new Thread(this);
seller = new Thread(this);
passenger = new Thread(this);
}
public void run() {
if(Thread.currentThread() == driver) {
System.out.println("司机正在等待乘客上车");
try {
passenger.join();
}catch(InterruptedException e) {
}
System.out.println("司机开车");
}
if(Thread.currentThread() == passenger) {
System.out.println("乘客正在等待买票");
try {
seller.join();
}catch(InterruptedException e) {
}
for(int i = 0; i < 10; i++) {
System.out.println("第"+(i+1)+"位乘客正在上车");
try {
Thread.sleep(200);
}catch(InterruptedException e) {
}
}
System.out.println("十位乘客全部上车");
}
if(Thread.currentThread() == seller) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
for(int i = 0; i < 10; i++) {
System.out.println("售票员正在卖给第"+(i+1)+"位乘客票");
try {
Thread.sleep(500);
}catch(InterruptedException e) {
}
}
System.out.println("全部乘客已购买车票");
}
}
}
public class TakeBusDemo {
public static void main(String[] args) {
TakeBus t = new TakeBus();
t.driver.start();
t.passenger.start();
t.seller.start();
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询