什么是多线程?
Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
新建状态:
使用new关键字和Thread类或其子类建立一个线程。
线程有sleep(睡眠)、suspend(挂起)等方法
死亡状态:
一个运行状态的线程完成任务或者其他终止条件发生时,该线程就切换到终止状态。
创建一个线程:
Java 提供了三种创建线程的方法:
通过实现 Runnable 接口;
通过继承 Thread 类本身;
通过 Callable 和 Future 创建线程。
下面是创建线程代码如下:
class RunnableDemo implements Runnable {
private Thread t;
private String threadName;
RunnableDemo( String name) {
threadName = name;
System.out.println("Creating " + threadName );
}
public void run() {
System.out.println("Running " + threadName );
try {
for(int i = 4; i > 0; i–) {
System.out.println("Thread: " + threadName + ", " + i);
// 让线程睡眠一会
Thread.sleep(50);
}
}catch (InterruptedException e) {
System.out.println(“Thread " + threadName + " interrupted.”);
}
System.out.println(“Thread " + threadName + " exiting.”);
}
public void start () {
System.out.println("Starting " + threadName );
if (t == null) {
t = new Thread (this, threadName);
t.start ();
}
}
}
public class TestThread {
public static void main(String args[]) {
RunnableDemo R1 = new RunnableDemo( “Thread-1”);
R1.start();
RunnableDemo R2 = new RunnableDemo( "Thread-2");
R2.start();
}
}
多线程的概念:
线程同步。
线程间通信。
线程死锁。
线程控制:挂起、停止和恢复。
java异步 同步区别:
同步指发送一个请求,需要等待返回;
异步指发送一个请求,不需要等待返回随时可以发送下一个请求不需要等待;
java锁:
锁会升级;
乐观锁:每次去拿数据都认为别人不会修改不会上锁 乐观锁------CAS
悲观锁:每次去拿数据别人都会认为会修改;
自旋锁 :synchronize与 Lock interface;
可重入锁(递归锁)公平锁和非公平锁 可中断锁 共享锁 读写锁 互斥锁;
有很多东西没写,写的不好请见谅。