开辟线程的两种方式

/**

  • 自定义执行单元的两种方式
  • 区别
  • runnable避免了单继承的局限性
  • runnable资源可以被独立共享
  • 多线程如何找问题
    1.明确哪些代码是多线程运行代码
    2.明确哪些是共享数据
    3.明确多线程代码中哪些语句是操作共享数据的
  • @author WangShuang
  • /
    public class Test {
    public static void main(String[] args) {
    /
    MyThread t0=new MyThread();
    MyThread t1=new MyThread();
    t0.start();
    t1.start();//出现两百张票
    */
    //t0.start();//java.lang.IllegalThreadStateException
    /*MyRunnable r=new MyRunnable();
    Thread rt0 = new Thread(r);
    Thread rt1 = new Thread(r);
    rt0.start();
    rt1.start();*/

    }
    }
    /**

  • 方式1继承Thread
  • 如果想实现两个窗口买票的话
  • MyThread t0=new MyThread();
    MyThread t1=new MyThread();
    t0.start();
    t1.start();//出现两百张票
    如果在tick前面加static能解决问题,但是生命周期又太长,所以采用方式2
  • @author Administrator
  • /
    class MyThread extends Thread{
    /
    static 加static不好 生命周期太长*/ int tick = 100;br/>@Override
    public void run() {
    while(tick>0){
    System.out.println(tick--);
    }
    }
    }
    /**
  • 方式2实现Runnable接口
  • @author Administrator
  • */
    class MyRunnable implements Runnable {
    int tick = 100;br/>@Override
    public void run() {
    synchronized (new Object()) {
    while(tick>0){
    System.out.println(" "+this.toString());
    System.out.println(Thread.currentThread().getName()+" "+tick--);
    }
    }
    }
    }

开辟线程的两种方式

原文地址:http://blog.51cto.com/13579086/2065918

时间: 2024-10-08 14:06:05

开辟线程的两种方式的相关文章

创建线程的两种方式比较Thread VS Runnable

1.首先来说说创建线程的两种方式 一种方式是继承Thread类,并重写run()方法 1 public class MyThread extends Thread{ 2 @Override 3 public void run() { 4 // TODO Auto-generated method stub 5 6 } 7 } 8 //线程使用 9 MyThread mt = new MyThread(); //创建线程 10 mt.start(); //启动线程 另外一种方式是实现Runnabl

黑马程序员——创建线程的两种方式

java中创建线程有两种方式: 1.继承Thread类 步骤: (1)定义一个类继承Thread类 (2)复写Thread类中的run()方法 (3)调用start()方法:启动线程及调用run()方法 2.实现Runnable接口的方式 步骤:(1)定义一个类实现Runnable接口 (2)覆盖Runnable接口中的run()方法,将线程要运行的代码放到该run方法中 (3)通过Thread类建立线程对象 (4)将实现Runable接口的类对象作为实际参数传递给Thread的构造函数. (5

Java开启线程的两种方式

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.ios培训..Net培训</a>.期待与您交流!------ Java开启线程的两种方式: 方式一:成为线程(Thread)的儿子,即继承Thread类简单代码如下:class Student extends Thread{Student(String name){super(name);}public

Java并发编程-创建线程的两种方式及区别

转载请注明:http://blog.csdn.net/UniKylin/article/details/45016117 1.线程和进程的区别 并行:是多个任务在同一时间同时执行,例如多核计算机同时计算的任务可以理解为并行 并发:从微观上看是多个任务抢占一个CPU从而执行自己的任务,轮流执行任务,但是如果遇到资源冲突的时候并没有从根本提高执行效率.但是提高了CPU的使用效率. 前段时间在GitHub上的一幅图可以很好的阐述上面的概念非常形象 2.Java中创建线程的两种方式 1.第一种方式:直接

【java并发】传统线程技术中创建线程的两种方式

传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式大部分人可能都知道,但是为什么这样玩就可以呢?下面我们来详细分析一下这两种方法的来龙去脉. 1. 揭秘Thread中run()方法 上面我们看到这两种方式都跟run()方法有关,所以我们来看一下Thread的源码中run()方法到底都干了什么: @Override public void run()

python并发编程:多线程-开启线程的两种方式

一 threading模块介绍 multiprocess模块完全模仿了threading模块的接口,二者在使用层面,有很大的相似性 二 开启线程的两种方式 方式一 from threading import Thread import time def sayhi(name): time.sleep(2) print("%s say hello" % name) if __name__ == '__main__': t = Thread(target=sayhi, args=('mik

开启线程的两种方式,

'''目录1,开启线程的两种方式*****2,线程和进程的区别*****3,线程对象的其他方法和属性4,守护线程5,互斥锁6,死锁现象与递过锁7,信号量'''#1 开启线程的两种方式import timefrom threading import Thread def dask(name): print('%s is running '%name) time.sleep(1) print('%s is done'%name) t=Thread(target=dask,args=('egon',)

7 并发编程-(线程)-开启线程的两种方式

thread/英 /θred/ 美 /θr?d/  线程 1.threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,因而不再详细介绍 2.开启线程的两种方式 2.1.方式一 from threading import Thread import time def task(name): print(f"{name} is running") time.sleep(2) print(f"{name} i

匿名内部类实现线程的两种方式

public static void main(String[] args) { //匿名内部类实现线程的两种方式 /*Thread t1 = new Thread(){ @Override public void run() { System.out.println("任务1...." + Thread.currentThread()); } }; t1.start();*/ new Thread(){ public void run() { System.out.println(&