浅谈2——我眼中的线程
作者:互联网
本篇博客简单介绍一下与线程有关的知识。
概念:线程是隶属于操作系统的概念,是程序执行中的单个顺序流程。多线程则指一个进程中可以同时运行多个不同的线程,执行不同的任务。多线程意味着一个程序的多行语句看上去几乎同时运行。
产生线程:1、继承Thread类,且覆盖其run方法
2、实现Runnable接口,并实现类对象作为参数传递给Thread类的构造方法
一、直接继承线程Thread类
public MyThread extends Thread{ //重载run方法 public void run(){线程体逻辑} }
创建及启动线程:
MyThread t=new MyThread();
t.start();
该方法编写简单,可以直接操作线程,但是由于已经继承了Thread类,不能继承其他类了。
二、实现Runnable接口
public MyThread implements Runnable{ public void run(){线程体逻辑} }
创建及启动教程:
MyThread t=new MyThread();
Thread t1=new Thread(t);
t1.start();
使用此方法可以多个线程共享某个对象的资源
线程中的关键字volatile:
volatile关键字的作用:
1、变量可见性
保证该变量对所有线程可见,这里的可见性指的是当一个线程修改了变量的值,那么新的值对于其他线程是可以立即获取的。
2、禁止重排序
volatile禁止了指令重排。比sychronized更轻量级的同步锁。在访问volatile 变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比sychronized关键字更轻量级的同步机制。volatile适合这种场景:一个变量被多个线程共享,线程直接给这个变量赋值。
线程应用:
采用多线程,可以最高效率的实现烧水泡茶。
代码如下:
public class Run implements Runnable{ public static void main(String[] args){ Run r=new Run(); Thread a= new Thread(r); // System.out.println("烧水泡茶工序:"); System.out.println("1、洗水壶"); System.out.println("2、烧水"); a.start(); try { a.join(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("6、泡茶"); } @Override public void run() { // TODO Auto-generated method stub System.out.println("烧水同时:3、洗茶壶"); System.out.println("烧水同时:4、洗茶杯"); System.out.println("烧水同时:5、拿茶叶"); } }
运行结果:
为什么写不出有深度的博客,还是菜!!!
如有错误,欢迎指正。
标签:浅谈,Thread,System,线程,println,眼中,public,out 来源: https://www.cnblogs.com/hzau-xpgao/p/13950945.html