java的多线程用法,求大神指点

没怎么用过这个,求大神举例下呗。还有之前有人说过那个火车买票的问题,这个又该如何编写呢?

http://blog.csdn.net/mengxiangyue/article/details/6871219
http://blog.csdn.net/story__struggle/article/details/52181593
如果满意,请点我回答右边的采纳。谢谢

我估计你连自己哪里不懂都不知道吧。。
多线程入门,先理解理论的东西,信号量、原子操作、互斥、同步、死锁等等,
然后找几个经典案例的代码看下, 生产者消费者 之类的

http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650241563&idx=1&sn=3000d8a03d639c978034df0d651e269d&chksm=88638b74bf14026203d1b04f9df8bf29e40d76e3a65ed7ef3765e5b1d579d86abd4b9b57ef8d&mpshare=1&scene=23&srcid=1012PzKxCDAUBy3wfiI2ISpK#rd
很详细

创建线程的方法一共有两种
①是继承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 )