当前位置:  开发笔记 > 编程语言 > 正文

Java线程教程类型问题

如何解决《Java线程教程类型问题》经验,为你挑选了1个好方法。

当谈到Java线程和并发的世界时,我相当天真.我目前正在努力学习.我做了一个简单的例子来试图弄清楚并发是如何工作的.

这是我的代码:

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class ThreadedService {

    private ExecutorService exec;

    /**
     * @param delegate
     * @param poolSize
     */
    public ThreadedService(int poolSize) {
        if (poolSize < 1) {
            this.exec = Executors.newCachedThreadPool();
        } else {
            this.exec = Executors.newFixedThreadPool(poolSize);
        }
    }

    public void add(final String str) {
        exec.execute(new Runnable() {
            public void run() {
                System.out.println(str);
            }

        });

    }

    public static void main(String args[]) {
        ThreadedService t = new ThreadedService(25);
        for (int i = 0; i < 100; i++) {
            t.add("ADD: " + i);
        }
    }

}

我需要做什么才能使代码按顺序打印出数字0-99?



1> Ben S..:

线程池通常用于不需要同步或高度并行的操作.

顺序打印数字0-99不是并发问题,需要同步线程以避免乱序打印.

我建议您查看Java并发课程,以了解Java中的并发性.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有