以下是一个简单的投票系统,满足题目要求:

import java.util.ArrayList;
import java.util.List;

public class VoteSystem {
    public static void main(String[] args) {
        List<String> votes = new ArrayList<>();  // 存储投票结果的集合

        // 创建4个投票线程
        Thread thread1 = new Thread(new Voter(votes));
        Thread thread2 = new Thread(new Voter(votes));
        Thread thread3 = new Thread(new Voter(votes));
        Thread thread4 = new Thread(new Voter(votes));

        // 启动4个投票线程
        thread1.start();
        thread2.start();
        thread3.start();
        thread4.start();

        try {
            // 等待4个投票线程执行完毕
            thread1.join();
            thread2.join();
            thread3.join();
            thread4.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // 输出投票结果
        System.out.println("投票结果共" + votes.size() + "张票");
    }
}

class Voter implements Runnable {
    private List<String> votes;  // 投票结果存储的集合

    public Voter(List<String> votes) {
        this.votes = votes;
    }

    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            votes.add("Candidate A");  // 假设只有一个候选人
        }
    }
}

在上面的代码中,我们创建了一个VoteSystem类,它包含了main方法,用于启动投票系统。在main方法中,我们首先创建了一个空的ArrayList对象,用于存储投票结果。然后,我们创建了4个线程,每个线程都是一个Voter对象,它们共享投票结果的集合。接着,我们分别启动这4个线程,并等待它们执行完毕。最后,我们输出投票结果的总数。

Voter类实现了Runnable接口,它包含了一个votes成员变量,用于存储投票结果。在run方法中,我们使用一个循环,将100张票投给候选人A(假设只有一个候选人)。每次循环,我们向votes集合中添加一个元素,表示投票结果。由于votes集合是线程不安全的,所以我们需要使用synchronized关键字来保证多个线程对它的访问是同步的。

编写一个投票系统要求:jav开启4个线程进行投票票放入一个集合中每个线程投票100张循环100次向集合中加入100个元素投票完成后控制台输出集合中的票数为400

原文地址: http://www.cveoy.top/t/topic/bJPd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录