吴裕雄--天生自然 JAVA开发学习:多线程编程
Posted tszr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了吴裕雄--天生自然 JAVA开发学习:多线程编程相关的知识,希望对你有一定的参考价值。
class RunnableDemo implements Runnable private Thread t; private String threadName; RunnableDemo( String name) threadName = name; System.out.println("Creating " + threadName ); public void run() System.out.println("Running " + threadName ); try for(int i = 4; i > 0; i--) System.out.println("Thread: " + threadName + ", " + i); // 让线程睡眠一会 Thread.sleep(50); catch (InterruptedException e) System.out.println("Thread " + threadName + " interrupted."); System.out.println("Thread " + threadName + " exiting."); public void start () System.out.println("Starting " + threadName ); if (t == null) t = new Thread (this, threadName); t.start (); public class TestThread public static void main(String args[]) RunnableDemo R1 = new RunnableDemo( "Thread-1"); R1.start(); RunnableDemo R2 = new RunnableDemo( "Thread-2"); R2.start();
class ThreadDemo extends Thread private Thread t; private String threadName; ThreadDemo( String name) threadName = name; System.out.println("Creating " + threadName ); public void run() System.out.println("Running " + threadName ); try for(int i = 4; i > 0; i--) System.out.println("Thread: " + threadName + ", " + i); // 让线程睡眠一会 Thread.sleep(50); catch (InterruptedException e) System.out.println("Thread " + threadName + " interrupted."); System.out.println("Thread " + threadName + " exiting."); public void start () System.out.println("Starting " + threadName ); if (t == null) t = new Thread (this, threadName); t.start (); public class TestThread public static void main(String args[]) ThreadDemo T1 = new ThreadDemo( "Thread-1"); T1.start(); ThreadDemo T2 = new ThreadDemo( "Thread-2"); T2.start();
public class DisplayMessage implements Runnable private String message; public DisplayMessage(String message) this.message = message; public void run() while(true) System.out.println(message);
public class GuessANumber extends Thread private int number; public GuessANumber(int number) this.number = number; public void run() int counter = 0; int guess = 0; do guess = (int) (Math.random() * 100 + 1); System.out.println(this.getName() + " guesses " + guess); counter++; while(guess != number); System.out.println("** Correct!" + this.getName() + "in" + counter + "guesses.**");
public class ThreadClassDemo public static void main(String [] args) Runnable hello = new DisplayMessage("Hello"); Thread thread1 = new Thread(hello); thread1.setDaemon(true); thread1.setName("hello"); System.out.println("Starting hello thread..."); thread1.start(); Runnable bye = new DisplayMessage("Goodbye"); Thread thread2 = new Thread(bye); thread2.setPriority(Thread.MIN_PRIORITY); thread2.setDaemon(true); System.out.println("Starting goodbye thread..."); thread2.start(); System.out.println("Starting thread3..."); Thread thread3 = new GuessANumber(27); thread3.start(); try thread3.join(); catch(InterruptedException e) System.out.println("Thread interrupted."); System.out.println("Starting thread4..."); Thread thread4 = new GuessANumber(75); thread4.start(); System.out.println("main() is ending...");
public class CallableThreadTest implements Callable<Integer> public static void main(String[] args) CallableThreadTest ctt = new CallableThreadTest(); FutureTask<Integer> ft = new FutureTask<>(ctt); for(int i = 0;i < 100;i++) System.out.println(Thread.currentThread().getName()+" 的循环变量i的值"+i); if(i==20) new Thread(ft,"有返回值的线程").start(); try System.out.println("子线程的返回值:"+ft.get()); catch (InterruptedException e) e.printStackTrace(); catch (ExecutionException e) e.printStackTrace(); @Override public Integer call() throws Exception int i = 0; for(;i<100;i++) System.out.println(Thread.currentThread().getName()+" "+i); return i;
以上是关于吴裕雄--天生自然 JAVA开发学习:多线程编程的主要内容,如果未能解决你的问题,请参考以下文章