多线程Thread与后台线程setDaemon,使用Runnable接口创建多线程

来源:互联网 发布:is网络兼职是真的吗 编辑:程序博客网 时间:2024/05/22 15:14

 

Java多线程

进程:每个独立执行的程序就是进程,也就是正在进行的程序

线程:一个进程中可以包含一个或多个线程

 

多线程与单线程的对比:(图1)

 

用Thread类创建线程:

 

后台线程:如果我们对某个线程对象在启动之前调用setDaemon(true)方法,这个线程就变成后台线程

 

synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程A每次运行到这个方法时,都要检查有没有其它正在用这个方法的线程B(或者C D等),有的话要等正在使用这个方法的线程B(或者C D)运行完这个方法后再运行此线程A,没有的话,直接运行 它包括两种用法:synchronized 方法和 synchronized 块。

使用Runnable接口创建多线程:多线程的应用,我们一般不直接继承(extends Thread)来实现多线程; 使用Runnable接口创建多线程可以更合理的分配资源

//多线程的在实际中的应用:网络聊天程序的收发,表记录的复制中途取消,www服务器为每一个来访者都建立专线服务

 

实现线程之间的同步:可以用同步函数也可以用同步代码块
同步代码块 和同步函数一起时必须使用this

出现死锁最明显的特征,程序停滞不前

 

下面程序是测试死锁问题所编写:修改掉部分注释内容适用于线程编写

 

 

 

 

原创粉丝点击