多任务:同时做多个事情,看起来是多个任务都在做,其实本质上我们的大脑在同一时间内只做一件事。
多线程例子:一条车道,车太多,会造成道路堵塞,效率极低,为了提高效率,充分利用道路,于是加了多个车道。
生活中的多线程例子:打游戏与朋友开黑
普通方法调用和多线程的区别
程序,进程,线程
进程:在操作系统中运行的程序就是进程,比如QQ,游戏,IDEA
一个进程可以有多个线程,如视频中同时可以听到声音,看到图像和弹幕等等
程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。
进程(Process):进程是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。
通常在一个进程中可以包含若干个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是CPU调度和执行的单位。
注意:很多多线程是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。
如果是模拟出来的多线程,即在一个CPU的情况下,在同一时间点,CPU只能执行一个代码,因为切换的很快,所有就有同事执行的错觉。
线程创建的三种方式
1 /* 2 * 创建线程方式一:继承Thread类,重写run()方法,调用start开启线程 3 * */ 4 public class TestThread1 extends Thread{ 5 @Override 6 public void run() { 7 //run方法线程体 8 for (int i = 0; i < 200; i++) { 9 System.out.println("我在看代码--"+i); 10 } 11 } 12 13 public static void main(String[] args) { 14 //main线程 主线程 15 //创建一个线程对象 16 TestThread1 testThread1 = new TestThread1(); 17 //调用start()方法开启线程 18 testThread1.start(); 19 for (int i = 0; i < 1000; i++) { 20 System.out.println("我在学习多线程"+i); 21 } 22 } 23 }
说明两个线程是同时执行的
线程不一定立即执行,CPU安排调度
Process
原文:https://www.cnblogs.com/lxzlovewyq/p/13681917.html