最近看到一個多線程面試題,有三個線程分別打印A、B、C,請用多線程編程實現,在屏幕上循環(huán)打印10次ABCABC… 

看到這個題目,首先想到的是解決方法是定義一個Integer類對象,初始化為0,由3個線程共享,如果Integer對象取余3之后等于0,則打印A,同時進行加1操作;如果Integer對象取3之后等于1,則打印B,同時進行加1操作;如果Integer對象取3之后等于1,則打印C,如果循環(huán)打印了10次的話,就退出線程。

復制代碼
/** * ThreeThread
 * 3個線程測試 */ public class ThreeThread { public static void main(String[] args) throws InterruptedException {
        Integer gData = 0;
        Thread  thread1 = new MyTask(gData, 0, "A");
        Thread  thread2 = new MyTask(gData, 1, "B");
        Thread  thread3 = new MyTask(gData, 2, "C");

        thread1.start();
        thread2.start();
        thread3.start();

        thread1.join();
        thread2.join();
        thread3.join();
    }

} class MyTask extends Thread { private Integer gData; p
        
		

網友評論