线程的创建
public class ThreadDemo implements Runnable{
public static void main(String[] args){
Thread t=new Thread(new ThreadDemo());
t.start();
}
public void run() {
System.out.println("Thread "+" is running");
}
}
匿名类实现线程的创建:
public class ThreadDemo{
public static void main(String[] args){
Thread t=new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Thread "+"is running");
}
});
t.start();
}
}
不同步情况下的线程,运行结果有不确定性
public class ThreadDemo{
static int s=0;
public static void main(String[] args){
for(int i=0;i<100;i++) {
Thread t=new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
s++;
System.out.println("Thread "+" is running. the number is "+s);
}
});
t.start();
}
}
}
线程同步:
synchronized代码块
import java.io.Serializable;
public class ThreadDemo implements Runnable{
static int num=0;
static Object o=new Object();
public static void main(String[] args){
for(int i=0;i<3;i++) {
Thread t=new Thread(new ThreadDemo());
t.start();
}
}
public void run() {
synchronized(o) {
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(int i=0;i<100;i++) {
num++;
}
System.out.println("Thread "+" is running. The number is "+num);
}
}
}
欢迎批评。