如何做网站电话,个人简历怎么写简短又吸引人,wordpress页面怎么写,河北9市最新消息博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库
JavaEE专栏:JavaEE
关注博主带你了解更多数据结构知识 1. 认识线程#xff08;Thread#xff09;
1.线程是什么
⼀个线程就是⼀个 执⾏流. 每个线程之间都可以按照顺序执⾏⾃⼰的代… 博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库
JavaEE专栏:JavaEE
关注博主带你了解更多数据结构知识 1. 认识线程Thread
1.线程是什么
⼀个线程就是⼀个 执⾏流. 每个线程之间都可以按照顺序执⾏⾃⼰的代码. 多个线程之间 同时 执⾏ 着多份代码
2. 为啥要有线程
通过写特殊的代码,把多个cpu核心,都能利用起来,这样的代码就叫并发编程.
多进程编程就是一种典型的并发编程.
虽然多进程能够解决问题,但随着对效率的要求越来越高,就希望出现更好的方式来实现并发编程.
多进程的缺点就是太重.
创建进程,销毁进程(最典型就是服务器开发),开销都比较大(时间,空间).
虽然多进程也能实现 并发编程, 但是线程⽐进程更轻量.
• 创建线程⽐创建进程更快.
• 销毁线程⽐销毁进程更快.
• 调度线程⽐调度进程更快
线程虽然⽐进程轻量, 但是⼈们还不满⾜, 于是⼜有了 线程池(ThreadPool) 和 协程 (Coroutine)
3.进程和线程的区别
• 进程是包含线程的. 每个进程⾄少有⼀个线程存在即主线程。
• 进程和进程之间不共享内存空间. 同⼀个进程的线程之间共享同⼀个内存空间.
• 进程是系统分配资源的最⼩单位线程是系统调度的最⼩单位。
• ⼀个进程挂了⼀般不会影响到其他进程. 但是⼀个线程挂了, 可能把同进程内的其他线程⼀起带⾛(整个进程崩溃). 4.Java 的线程和操作系统线程的关系
线程是操作系统中的概念. 操作系统内核实现了线程这样的机制, 并且对⽤⼾层提供了⼀些 API 供⽤⼾ 使⽤(例如 Linux 的 pthread 库).
Java 标准库中 Thread 类可以视为是对操作系统提供的 API 进⾏了进⼀步的抽象和封装.
5. 创建线程
⽅法1 继承 Thread 类
继承 Thread 来创建⼀个线程类.
class MyThread extends Thread{Overridepublic void run() {//这里就是即将创建线程,要执行的逻辑System.out.println(hello,Thread!);}
}
public class Demo1 {public static void main(String[] args) {MyThread t new MyThread();//创建线程t.start();}
} 创建 MyThread 类的实例
MyThread t new MyThread();
调⽤ start ⽅法启动线程
t.start(); ⽅法2 实现 Runnable 接⼝
实现 Runnable 接⼝
class MyRunnable implements Runnable{Overridepublic void run() {System.out.println(hello Runnable!);}
}
public class Demo2 {public static void main(String[] args) {MyRunnable runnable new MyRunnable();Thread t new Thread(runnable);t.start();}
}
创建 Thread 类实例, 调⽤ Thread 的构造⽅法时将 Runnable对象作为 Thread 参数. Thread t new Thread(runnable);
调⽤ start ⽅法 t.start();
其他变形
匿名内部类创建 Thread ⼦类对象 public class Demo3 {public static void main(String[] args) {Thread t new Thread(){Overridepublic void run() {while (true){System.out.println(hello Thread!);try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}}};t.start();}
}