------- android培训、java培训、期待与您交流! ----------
多线程
java中要想实现多线程,有两种方法,一种是继续Thread类,并重写run方法。另外一种是实现Runable接口。
public class TestThread extends Thread {
private String name;
public TestThread(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(name + "======》" + i);
}
}
private boolean isEligible(int age) {
return age > 18;
}
public static void main(String[] args) {
TestThread tt1 = new TestThread("zs");
TestThread tt2 = new TestThread("ls");
tt1.start();
tt2.start();
}
通过实现Runnable接口来创建多线程类。
public class TestRunnable implements Runnable { @Override public void run() { for (int i = 0; i < 3; i++) { // 如果想获得当前线程,只能用Thread.currentThread()方法 System.out.println(Thread.currentThread().getName() + "===》" + i); } } public static void main(String[] args) { TestRunnable tr = new TestRunnable(); new Thread(tr, "线程A").start(); new Thread(tr, "线程B").start(); new Thread(tr).start();// 开启线程 } }
线程的生命周期
线程的生命周期中他要经过新建(new)、就绪(Runnable),运行(Running)、阻塞(Blocked)和死亡(Dead)五种状态。
当使用new来创建一个线程以后,该线程就处于新建状态。而运行是调用他的start()方法。
运行和阻塞
当调用sleep()时线程将进入阻塞,调用yield()可以使运行状态的线程转让到就绪状态。
同步代码块。
synchronized(对象)
{
//同步的代码
}
同步方法是使用关键字synchronized修饰该方法。(synchronized不可以修饰属性和构造器)
生存者和消费者问题