线程:Java多任务执行的技术,比如同时听歌,写代码,写博客,每一件事就是一个线程
线程并发:多个线程同一时间访问一个资源,比如双十一
并行:指两个或多个任务在同一时刻,同时发生
简单来说:多个线程访问多个资源:并行。多个线程访问一个资源,并发。
进程:一个应用程序
线程:进程中的一个单元,一个进程中有多个线程。
线程调度(抢占cpu的使用权):分时调度:所有线程轮流使用cpu使用权。抢占式:优先给优先级高的线程。
线程安全:多个线程竞争一个资源,容易产生重修修改。
同步和线程的异步:
同步:这个干完干那个,顺序执行,执行完一个任务再执行另一个
异步:当一个任务开启期间,开启另一个任务。
创建线程的两种方式:
1.继承Thread
2.实现Runnable接口
继承Thread
class Mythread extends Thead
{
super(name);
for(int i = 0;i < 10;i++)
{
System.out.println(getName()+" "+ i + "正在执行");
}
}
class Demo
{
public static void main()
{
//创建线程
Mythread mythread = new Mythread("生活真他娘的累啊");
//开启线程
mythread.start();
}
}
实现Runnable接口
class Mythread implements Runnable
{
@override
public void run()
{
System.out.println(Thread.currentThread.getName() + i +"正在执行");
}
}
class Demo
{
public static void main()
{
//创建线程
Mythread mythread = new Mythread();
Thread thread = new Thread("累啊,真累啊");
//开启线程
thread.start();
}
}
synchronized:同步锁,关键字
Obeject object = new Object();
synchronized(object) //synchronized是关键字,上锁以后,别人就进不来了
{
程序
}
lock:
Lock lock = new ReentrantLock();
在重写的run方法里
@override
public void run()
{
lock.lock(); //上锁
程序
lock.unlock(); //解锁
}


