单任务处理:
一个任务执行完毕,才能执行下一个任务
多任务处理:
在一个任务没有执行完时,又在执行另一个任务。几个任务同时执行。
一个任务执行完毕,才能执行下一个任务
多任务处理:
在一个任务没有执行完时,又在执行另一个任务。几个任务同时执行。
多任务处理有两种
-基于进程
-基于线程
进程是指一种“自包容”的运行程序,有操作系统直接管理,直接运行,有自己的地址空间,每个进程有开启都会消耗内存
-基于进程
-基于线程
进程是指一种“自包容”的运行程序,有操作系统直接管理,直接运行,有自己的地址空间,每个进程有开启都会消耗内存
线程是进程内部单一的顺序控制流。一个进程拥有多个线程,多个线程共享一个进程的内存空间。
主线程:main方法一运行,就产生了主线程
特点:
1、最先开始,
2、最后结束
3、产生其他的子线程
4、回收资源
特点:
1、最先开始,
2、最后结束
3、产生其他的子线程
4、回收资源
调用start()方法和run()方法的区别
调用run方法是普通方法的调用,不会产生新的线程。调用start表示在主线程基础上,产生一个新的线程。这样子线程和主线程会交替执行。
创建线程的方式有:
1、继承thread类,重写run()
2、实现Runnable接口,实现run()
相比而言,使用第二种更好。类只能但跟继承。如果一个类继承类被的类,就不能再继承Thread,但是接口可以多实现。
1、继承thread类,重写run()
2、实现Runnable接口,实现run()
相比而言,使用第二种更好。类只能但跟继承。如果一个类继承类被的类,就不能再继承Thread,但是接口可以多实现。
线程的优先级:
当一个或多个线程,同时处于就绪状态。优先级高的线程,会优先得到执行。优先级一共10级。数字越大,优先级越高。默认为5级。通过setPriority(int a)改变线程的优先级。
当一个或多个线程,同时处于就绪状态。优先级高的线程,会优先得到执行。优先级一共10级。数字越大,优先级越高。默认为5级。通过setPriority(int a)改变线程的优先级。
线程同步:
当两个或两个以上的线程。同时访问同一个资源时。为了保护资源的数据安全。只允许同一时间一个线程对该资源进行访问
当两个或两个以上的线程。同时访问同一个资源时。为了保护资源的数据安全。只允许同一时间一个线程对该资源进行访问
同步造成的后果:
1、数据安全
2、效率低下
1、数据安全
2、效率低下