Questions tagged «java-threads»

30
Java中的“可运行的实现”与“扩展线程”
从什么时候开始在Java中使用线程开始,我发现了以下两种编写线程的方法: 与implements Runnable: public class MyRunnable implements Runnable { public void run() { //Code } } //Started with a "new Thread(new MyRunnable()).start()" call 或者,使用extends Thread: public class MyThread extends Thread { public MyThread() { super("MyThread"); } public void run() { //Code } } //Started with a "new MyThread().start()" call 这两个代码块有什么显着区别吗?


12
如果我在同一个类上同步了两个方法,它们可以同时运行吗?
如果我在同一个类上同步了两个方法,那么它们可以同时在同一个对象上运行吗?例如: class A { public synchronized void methodA() { //method A } public synchronized void methodB() { // method B } } 我知道我不能methodA()在两个不同的线程中的同一对象上运行两次。在methodB()。 但是我可以methodB()在methodA()仍然运行时在其他线程上运行吗?(相同的对象)


12
如何在没有IllegalMonitorStateException的情况下在Java中使用等待和通知?
我有2个矩阵,我需要将它们相乘,然后打印每个单元格的结果。准备好一个单元格后,我就需要打印它,但是例如,即使[2] [0]的结果先准备好,我也需要在单元格[2] [0]之前打印[0] [0]单元格。所以我需要按顺序打印它。所以我的想法是让打印机线程等待,直到multiplyThread通知它准备打印正确的单元格,然后printerThread它将打印该单元格并返回等待状态,依此类推。 所以我有这个线程做乘法: public void run() { int countNumOfActions = 0; // How many multiplications have we done int maxActions = randomize(); // Maximum number of actions allowed for (int i = 0; i < size; i++) { result[rowNum][colNum] = result[rowNum][colNum] + row[i] * col[i]; countNumOfActions++; // Reached …

8
将ExecutorService转换为Java中的守护程序
我正在Java 1.6中使用ExecutoreService,其启动方式仅由 ExecutorService pool = Executors.newFixedThreadPool(THREADS). 当我的主线程完成时(以及线程池处理的所有任务),该池将阻止我的程序关闭,直到我显式调用 pool.shutdown(); 是否可以通过某种方式将此池使用的内部线程管理转换为守护线程来避免调用此方法?还是我在这里想念什么。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.