没怎么用过这个,求大神举例下呗。还有之前有人说过那个火车买票的问题,这个又该如何编写呢?
http://blog.csdn.net/mengxiangyue/article/details/6871219
http://blog.csdn.net/story__struggle/article/details/52181593
如果满意,请点我回答右边的采纳。谢谢
我估计你连自己哪里不懂都不知道吧。。
多线程入门,先理解理论的东西,信号量、原子操作、互斥、同步、死锁等等,
然后找几个经典案例的代码看下, 生产者消费者 之类的
创建线程的方法一共有两种
①是继承Thread类,复写他的run方法
②是实现Runnable接口,重写run方法
以下是第一种继承Thread的实例
public class Demo1 extends Thread {
@Override //把自定义线程的任务代码写在run方法中。
public void run() {
for(int i = 0 ; i < 100 ; i++){
System.out.println("自定义线程:"+i);
}
}
public static void main(String[] args) {
//创建了自定义的线程对象。
Demo1 d = new Demo1();
//调用start方法启动线程,注意,千万不要直接用对象调用run方法,若直接调用的话就相当调用一个不同的方法,而不是一个线程
d.start();
for(int i = 0 ; i < 100 ; i++){
System.out.println("main线程:"+i);
}
}
}
以下是第二种的实现Runnable接口的实例
class MyThread implements Runnable{
@Override
public void run() {
for(int i = 0 ; i < 100 ; i++){
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
}
public class test {
public static void main(String[] args) {
MyThread thread= new MyThread();
//创建Thread的对象
Thread t = new Thread(thread);
//调用Thread对象的start方法
t.start();
}
}
火车买票的问题,就是当开启多线程后,多个线程争夺同一个共享资源(成员变量)问题,可以用锁对象解决(synchronized )