首页 / JAVA / JAVA 多线程编程题
JAVA 多线程编程题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA 多线程编程题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1622字,纯文字阅读大概需要3分钟。
内容图文
文章目录
题目
编写一个Java程序,该程序将启动4个线程,其中3个是掷硬币线程,1个是主线程。每个掷硬币线程将连续掷出若干次硬币(10次以内,次数随机生成);主线程将打印出正面出现的总次数以及正面出现的概率。
难点
因为要计算数量以及出现概率,所以必须将所有子线程内的数据同步到主线程内。
源代码
Coin.java
package com.web.homework03;
public class Coin{
public static void main(String[] args) throws InterruptedException {
test test = com.web.homework03.test.getTest();
Thread[] trr = new Thread[3];
for (int i = 0; i < 3; i++) {
trr[i] = new Thread(new Roll(test), "线程" + (i + 1));
}
for (Thread thread : trr) {
thread.start();
}
for (Thread thread : trr) {
thread.join();
}
System.out.println("正面总次数为:"+test.getRoll());
System.out.println("正面总次数为:"+test.getRandoms());
System.out.println("出现正面的概率为:"+(double)test.getRoll()/test.getRandoms());
}
}
Roll.java
package com.web.homework03;
public class Roll implements Runnable{
private test test01;
public Roll(test test){
this.test01 = test;
}
@Override
public void run() {
test01.method();
}
}
test.java
package com.web.homework03;
import java.util.Random;
public class test {
private int randoms;
private int roll;
public int getRandoms() {
return randoms;
}
public void setRandoms(int randoms) {
this.randoms = randoms;
}
public int getRoll() {
return roll;
}
public void setRoll(int roll) {
this.roll = roll;
}
private test() {
}
private static final test test = new test();
public static test getTest() {
return test;
}
public synchronized void method() {
Random random = new Random();
int times = random.nextInt(10);
randoms += times;
for (int i =0;i<times;i++){
if (random.nextBoolean()){
roll++;
}
}
}
}
内容总结
以上是互联网集市为您收集整理的JAVA 多线程编程题全部内容,希望文章能够帮你解决JAVA 多线程编程题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。