Java多线程编程核心技术

Posted aroon-official

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程编程核心技术相关的知识,希望对你有一定的参考价值。

先提一下进程,可以理解为操作系统管理的基本单元。

线程呢,在进程中独立运行的子任务。举个栗子:QQ.exe运行时有很多子任务在同时运行,比如好友视频线程、下载视频线程、传输数据线程等等。

  • 多线程的优势?

     在单任务运行环境中,需要排队执行,也就是我们所说的同步,CPU利用率大幅降低。

     多任务运行环境中,CPU可以来回切换,系统运行效率提升。多线程是异步的,所以千万不要把 Eclipse IDEA里的代码顺序当成线程执行顺序。

  • 实现?

   继承Thread类

package chapter1;
public class MyThread extends Thread{
    public void run(){
        System.out.println("MyThread");
    }
}
package test;

import chapter1.MyThread;

public class Run {
    public static void main(String[] args){
        MyThread mythread = new MyThread();
        mythread.start();
        System.out.println("结束");
    }
}
运行结果:
结束
MyThread//有个小小问题,为什么结束是在前面的噢,不管试多少次

注意:

  1. Thread.java类的start()通知线程规划器,等待调用线程的run()。这个过程让系统安排一个时间使线程得到运行,具有异步执行的效果。如果调用Thread.run(),就变成了同步执行,是由main主线程来调用run()的
  2. 执行start()方法的顺序不代表线程的启动顺序//可以多new几个,然后慢慢start

     实现Runnable接口

  首先,瞄一下Thread的构造方法

   技术分享图片

   发现 ~ 构造函数可以传入Runnable接口的对象

 

package chapter1;

public class MyRunnable implements Runnable{
    public void run(){
        System.out.println("Runnable");
    }
}

 

package test;

import chapter1.MyRunnable;

public class Run {
    public static void main(String[] args){
        MyRunnable myRunnable = new MyRunnable();
        Thread t1 = new Thread(myRunnable);
        t1.start();
        System.out.println("结束");
    }
}
运行结果:
结束
Runnable//它怎么又是结束在前面

 

 

 

啊啊啊啊啊啊啊写文也太难了吧,代码和字都纯手打,放弃orz,入坑即弃坑,乖乖啃书了

 

 


以上是关于Java多线程编程核心技术的主要内容,如果未能解决你的问题,请参考以下文章

《java多线程编程核心技术》和《java并发编程的艺术》两本书的异同

java多线程编程核心技术

《Java多线程编程核心技术》推荐

《Java多线程编程核心技术》多线程技能

java多线程编程技术 +代码实例

java多线程编程核心技术学习-2