繁体   English   中英

Java中的多线程执行服务,是否忽略线程的详细信息?

[英]executor service in java for multi threading, ignore the details of threading?

我试图学习线程并在Java中运行,而我的一位同事告诉我停止它也将需要学习这些细节。 只是查找如何编写执行程序。 这在Java中是如何工作的。 有人可以提供例子吗?

谢谢!

为了解决编程中小的孤立问题而又没有更大的项目,您可以直接去了解执行器。 这是一个如何将线程池与Executor框架一起使用的示例,该框架适合作为入口点。

但是,如果您打算在并发是重要主题的环境中进行更多工作,那么深刻理解更高级概念背后的基础知识至关重要。 充分了解幕后情况之后,您将能够快速判断对于性能和可伸缩性问题而言,最佳的解决方案是什么。 如果没有这种了解,您编写的代码将执行您想要的操作,但是如果将其应用于未经测试的稍微不同的场景,则代码的性能可能很差,甚至可能由于性能而无法使用降解。 并发是一个复杂的话题,解决方案的概念不能很好地理解该问题。

话虽如此,我强烈建议您还学习有关线程和可运行的信息。

这是执行程序的易于理解的实现,该执行程序将最多同时运行三个类:

ExecutorService executorService = Executors.newFixedThreadPool(3);
Callable<Void> thread1 = new MyClass(); 
executorService.submit(thread1);
Callable<Void> thread2 = new MyClass2(); 
executorService.submit(thread2);                
executorService.shutdown();

和班级:

public class MyClass implements Callable<Void> {
@Override
public Void call() throws Exception{ }
}

的确,您不需要深入了解基本知识,只需记住,如果您的类正在访问有冲突可能性的共享资源,则您需要具有锁定等功能的适当线程实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM