这是一个示例代码,实现了4个线程并发投票的功能:

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

public class VoteDemo {

    public static void main(String[] args) {
        List<Integer> votes = Collections.synchronizedList(new ArrayList<Integer>());
        // 创建一个同步的List,用于存放投票结果

        for (int i = 0; i < 4; i++) {
            new Thread(new Voter(votes)).start();
        }
        // 创建4个线程进行投票

        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        // 等待一段时间让所有线程完成投票

        System.out.println("Total votes: " + votes.size());
        // 输出投票结果的总数
    }

    static class Voter implements Runnable {
        private List<Integer> votes;

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

        @Override
        public void run() {
            for (int i = 0; i < 100; i++) {
                votes.add(i);
            }
        }
    }
}

运行结果:

Total votes: 400

注意,为了保证多个线程同时对集合进行操作时不会出现线程安全问题,我们使用了一个同步的List(通过Collections.synchronizedList()方法创建),这样每个线程对集合的访问都会被同步,避免了可能的竞态条件。

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

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

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