线程的创建
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);
}
}
}
欢迎批评。
本文介绍了Java中线程的创建方法,包括实现Runnable接口和使用匿名类的方式,并探讨了不同步情况下线程运行结果的不确定性。此外,还详细讲解了如何通过synchronized关键字实现线程同步,确保数据的一致性和线程安全。
1216

被折叠的 条评论
为什么被折叠?



