java线程
Posted 学习笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java线程相关的知识,希望对你有一定的参考价值。
创建线程有两种方法:
1、继承Thread类
2、实现Runnable接口
为什么还有第二种方法?
因为有的时候某个类已经有了父类就不能在继承线程类,那么为了解决单继承的局限性
就可以在实现Runnable接口来被线程调用。
创建线程的第一种方法:继承Thread类:
步骤:
1、创建类继承Thread
2、覆盖run()方法。
3、调用statrt方法
start()方法有两个作用
1.启动线程,2.调用run方法
那么如果没有调用start方法,直接调用run方法,那么不会实现线程交替的执行
而是将该run方法执行完之后再执行main方法中run之后的代码,不能达到多线程交替执行的效果
1 //代码演示: 2 public class Demo3 extends Thread{ 3 @Override 4 public void run() { 5 //run方法中要进行的操作 6 } 7 public static void main(String[] args) { 8 Demo3 demo3 = new Demo3(); 9 demo3.start(); 10 } 11 }
创建线程的第二种方法:继承Runable接口:
步骤:
1、创建一个类实现Runnable接口
2、覆盖接口中的run方法
3、在main方法中创建Thread类对象,创建自定义线程类对象,将其作为参数传入Thread类对象中,
4、同样,用Thread类对象调用start方法。
1 //代码演示: 2 //自定义类实现Runnable接口 3 public class ThreadDemo implements Runnable { 4 //创建线程的第一种方式:继承Thread类 5 private int ticket =100; 6 Object object = new Object(); 7 @Override 8 public void run() { 9 while(true) { 10 synchronized (object) { 11 if (ticket>0) { 12 try { 13 Thread.sleep(10); 14 } catch (Exception e) { 15 } 16 System.out.println(Thread.currentThread().getName()+"-----"+ticket--); 17 } 18 } 19 } 20 } 21 } 22 //执行类,三个线程同时执行,模拟一个买票的过程 23 public class Test { 24 public static void main(String[] args) { 25 ThreadDemo threadDemo = new ThreadDemo(); 26 Thread thread = new Thread(threadDemo); 27 Thread thread2 = new Thread(threadDemo); 28 Thread thread3 = new Thread(threadDemo); 29 thread.start(); 30 thread2.start(); 31 thread3.start(); 32 } 33 }
以上是关于java线程的主要内容,如果未能解决你的问题,请参考以下文章