「Java基础」线程创建

1. 继承 Thread 类:

    private class MyThread extends Thread{
        @Override
        public void run() {
            //doSomething
        }
    }
    
    MyThread myThread = new MyThread();
    myThread.start();

2. 实现 Runnable 接口

    private class MyThread implements Runnable{

        @Override
        public void run() {
            //doSomeThing
        }
    }

    Thread myThread = new Thread(new MyThread());
    myThread.start();

常用简化模式:

  new Thread(new Runnable() {
     @Override
     public void run() {
         //todoList
     }
 }).start();

不同创建线程区别:

继承方式 不能资源共享, 实现 Runnable可以达到资源共享;
列子「卖票」

package threadTest;

public class TicketRunnable implements Runnable{

    private int ticket = 10;

    @Override
    public void run() {
        for(int i =0;i<10;i++){
            //添加同步快
            synchronized (this){
                if(this.ticket>0){
                    try {
                        //通过睡眠线程来模拟出最后一张票的抢票场景
                        Thread.sleep(100);
                        System.out.println(Thread.currentThread().getName()+"卖票---->"+(this.ticket--));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }

    public static void main(String[] arg){
        TicketRunnable t1 = new TicketRunnable();
        new Thread(t1, "线程1").start();
        new Thread(t1, "线程2").start();
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在前面的话: 这篇博客是我从这里“转载”的,为什么转载两个字加“”呢?因为这绝不是简单的复制粘贴,我花了五六个小...
    SmartSean阅读 4,793评论 12 45
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,844评论 0 10
  • 下面是我自己收集整理的Java线程相关的面试题,可以用它来好好准备面试。 参考文档:-《Java核心技术 卷一》-...
    阿呆变Geek阅读 14,910评论 14 507
  • 2014.3.15.@桉木的文 刚看到一篇很久以前写的文章,看了很好笑,但心也有点酸。 有人说:暗恋是恋爱中最美好...
    吕桉木阅读 842评论 2 5