【多线程与高并发】- 线程基础与状态
|
好久没坚持学习了,所以,这次要好好下定决心学习。多线程与高并发不是一天两天就能弄懂的,需要不断的学习、实践,本次笔者将近学习的内容知识记录下来。多线程也是一项比较重要的内容,虽然CRUD不太会接触到,但是,在一些相关场景可能会有某些问题是由于线程导致的。
|
要了解线程的概念,就需要知道什么是进程。简单理解就是一个进程中包含了许多个线程。现在就简单介绍,后续若是有对操作系统进行研究的话会慢慢介绍,具体关于线程进程的内容可以去看看王道的操作系统,里面讲述得特别清楚。
是系统进行资源分配的基本单位,是操作系统结构的基础,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
所谓线程就是操作系统(OS)能够进行运算调度的小单位,是一个基本的CPU执行单元,也是执行程序流的小单元。能够提高OS的并发性能,减小程序在并发执行时所付出的时空开销。线程是进程的一个实体,是被系统独立调度和分派的基本单位。线程本身是不拥有系统资源的,但是它能够使用同属进程的其他线程共享进程所拥有的全部资源。
在Java中,常见得就是继承Thread类或者实现Runnable接口,再通过run或者start方法去执行线程。
如以下代码,这是一段很简单得代码块,通过继承Thread类,重写run方法来创建线程,并且通过run和start来运行。
public class Thread_demo01 { private static class Thread1 extends Thread { @Override public void run() { for (int i = ; i < 5; i++) { try { Thread.sleep(1); } catch (InterruptedException e) { throw new RuntimeException(e); } System.out.println("Thread1-" + i); } } } public static void main(String[] args) { new Thread1().run(); // 顺序执行 // new Thread1().start(); // 线程同时执行 for (int i = ; i < 5; i++) { try { Thread.sleep(1); } catch (InterruptedException e) { throw new RuntimeException(e); } System.out.println("main"); } } } 相关文章