概述
我是
java中这个并发编程的新手,并提出了以下场景,我在混淆时使用它.
场景1:在下面的代码中,我试图通过在GPSService类上调用.start()来运行线程,这是一个Runnable实现.
int clientNumber = 0;
ServerSocket listener = new ServerSocket(port);
while (true) {
new GPSService(listener.accept(), clientNumber++, serverUrl).start();
}
场景2:在下面的代码中,我试图通过使用ExecutorService类来运行线程,如图所示
int clientNumber = 0;
ServerSocket listener = new ServerSocket(port);
while(true) {
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(new GPSService(listener.accept(), client++, serverUrl));
executor.shutdown();
while (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
// Threads are still running
System.out.println("Thread is still running");
}
// All threads are completed
System.out.println("nThread completed it's execution and terminated successfullyn");
}
我的问题是
在并发编程中调用线程的最佳实践是什么?
当我使用第一个或第二个时,我会得到什么结果(麻烦)?
注意:我一直面临着第一个场景的问题,即每隔几天该程序就会被吊死.那么,当我使用第一种方法时,该问题是否与预期有关.
任何好的/有用的答案将不胜感激:)谢谢
最后
以上就是懦弱裙子为你收集整理的java 并行运行_在Java中并行运行线程时ExecutorService的execute和thread.run有什么区别?...的全部内容,希望文章能够帮你解决java 并行运行_在Java中并行运行线程时ExecutorService的execute和thread.run有什么区别?...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复