Java线程代码的实现方法
发布时间 - 2026-01-11 02:49:39 点击率:次一、线程Java代码实现

1.继承Thread
声明Thread的子类
public class MyThread extends Thread {
public void run(){
System.out.println("MyThread running");
}
}
运行thread子类的方法
MyThread myThread = new MyThread(); myTread.start();
2.创建Thread的匿名子类
Thread thread = new Thread(){
public void run(){
System.out.println("Thread Running");
}
};
thread.start();
3.实现Runnable接口
声明
public class MyThread implements Runnable {
@override
public void run() {
System.out.println("MyThread is running");
}
}
运行
Thread thread = new Thread(new MyRunnable()); thread.start();
4.创建实现Runnable接口的匿名类
new Thread(new Runnable(){
@override
public void run() {
System.out.println("Thread is running");
}
}).start();
5.线程名字
创建时候可以给线程起名字
Thread thread = new Thread(new MyRunnable(),"name");?获得名字 Thread thread = new Thread(new MyRunnable(),"name"); System.out.println(thraed.getName());?获取运行当期代码线程的名字 Thread.currentThread().getName();
二、线程安全性
1.定义
线程会共享进程范围内的资源,同时,每个线程也会有各自的程序计数器,栈,以及局部变量。在多个线程不完全同步的情况下,多个线程执行的顺序是不可预测的,那么不同的执行顺序就可能带来极其糟糕的结果。
如何定义一个类是线程安全的呢?最核心的问题在于正确性,在代码中无需进行额外的同步或者协同操作的情况下,无论有多少个线程使用这个类,无论环境以何种方式调度多线程,这个类总能表现出正确的行为,我们就成这个类是线程安全的。
2.线程类不安全的实例
1.首先定义Count类,有私有成员count=0;
public class Count {
private long count = 0;
public long getCount() {
return count;
}
public void service() {
count++;
}
}
2.然后在线程中去调用这个类的service方法
final Count count = new Count();
for (int i = 0; i < 20000; i++) {
Thread thread3 = new Thread(){
@Override
public void run() {
count.service();
if (count.getCount() == 20000) {
System.out.println("ahha");
}
}
};
thread3.start();
}
3.结果程序却没有输出,说明最后count并没有达到20000,为什么呢?
因为存在着以下错误执行的情况:线程2在线程1没有完成count自增的情况下就读取了count,导致最后count没有达到20000。
4.并发编程中,这种由于不恰当的执行顺序而显示了不正确结果的情况叫做Race Condition(竞争状态),这种情况出现的根本原因是count的自增没有保持原子性。count自增分三步操作,而不是一步到位。
以上这篇Java线程代码的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# 线程代码实现
# Java创建多线程的两种方式对比
# Java多线程的实现方式比较(两种方式比较)
# 详解Java实现多线程的三种方式
# 详解三种java实现多线程的方式
# 子类
# 多个
# 情况下
# 给大家
# 会有
# 希望能
# 却没有
# 表现出
# 这种情况
# 就可
# 什么呢
# 能带
# 这篇
# 中去
# 不完全
# 不正确
# 小编
# 不安全
# 使用这个
# 多线程
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JavaScript模板引擎Template.js使用详解
潮流网站制作头像软件下载,适合母子的网名有哪些?
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
网站制作免费,什么网站能看正片电影?
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
非常酷的网站设计制作软件,酷培ai教育官方网站?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
Python进程池调度策略_任务分发说明【指导】
如何快速生成专业多端适配建站电话?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
如何快速搭建高效WAP手机网站吸引移动用户?
大型企业网站制作流程,做网站需要注册公司吗?
使用spring连接及操作mongodb3.0实例
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
Laravel如何处理CORS跨域请求?(配置示例)
nodejs redis 发布订阅机制封装实现方法及实例代码
网站制作壁纸教程视频,电脑壁纸网站?
JavaScript中的标签模板是什么_它如何扩展字符串功能
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
JS弹性运动实现方法分析
Laravel如何创建自定义Facades?(详细步骤)
如何用低价快速搭建高质量网站?
JavaScript如何实现路由_前端路由原理是什么
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
简单实现Android文件上传
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
详解Android——蓝牙技术 带你实现终端间数据传输
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
深圳网站制作的公司有哪些,dido官方网站?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何在新浪SAE免费搭建个人博客?
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】
新三国志曹操传主线渭水交兵攻略
Java垃圾回收器的方法和原理总结
原生JS获取元素集合的子元素宽度实例
如何挑选优质建站一级代理提升网站排名?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何在万网自助建站中设置域名及备案?

