其他分享
首页 > 其他分享> > 浅谈2——我眼中的线程

浅谈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