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

本文详细介绍了Java中多线程的基本概念,包括进程与线程的区别、多线程的创建方式,如通过Thread类和Runnable接口实现。同时,探讨了线程间的同步问题,包括synchronized关键字的使用方法及可能出现的死锁现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

Java多线程

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

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

 

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

 

用Thread类创建线程:

 

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

 

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

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

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

 

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

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

 

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

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值