千家信息网

Java中怎么创建自己的线程对象

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容主要讲解"Java中怎么创建自己的线程对象",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java中怎么创建自己的线程对象"吧!默认情况下,主线程和
千家信息网最后更新 2025年01月31日Java中怎么创建自己的线程对象

本篇内容主要讲解"Java中怎么创建自己的线程对象",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Java中怎么创建自己的线程对象"吧!

默认情况下,主线程和垃圾回收线程都是由系统创建的,但是我们需要完成自己的功能----创建自己的线程对象。

* java将线程面向对象了,形成的类就是Thread,在Thread类内部执行任务的方法叫run()

*

* 注意:如果想让run作为任务区,必须让他去被自动调用.我们通过执行start()方法,来开启线程,继而实现run方法的自动调用.

## 直接使用Thread创建线程对象

// //分析:由于我们实现的实际功能Thread类是决定不了的,所以没有办法将我们的功能放入Thread的run方法里

// //所以Thread的run 方法是一个空方法.如果我们想实现自己的功能,可以写Thread类的子类,重写run方法

当我们手动调用run的时候,他失去了任务区的功能,变成了一个普通的方法.

//当run作为一个普通方法时,内部对应的线程跟调用他的位置保持一致.

## 锁的条件:

* 1.锁必须是对象 普通的对象/this/字节码文件

* 2.要被所有的线程共享

*

* 注意:字节码文件的使用范围太大,一般不建议使用.

空唤醒

## Lock锁

使用步骤

1.创建ReentrantLock lock = new ReentrantLock();对象,需要注意的是多个线程必须使用同一个

2.把之前的synchronized(锁){ 用lock.lock()替换

3.把} 用lock.unlock();替换

好处

1.不要考虑锁对象

2.代码看起来更加简洁了

3.可以使用try..catch..finaly把lock.unlock放到finaly中,好处是如果该线程发生了异常,照样可以释放锁

## 比较synchronized和Lock

* 1.synchronized:从jdk1.0就开始使用的同步方法-称为隐式同步

* synchronized(锁对象)

* {//获取锁 我们将锁还可以称为锁旗舰或者监听器

同步的代码}//释放锁

* 2.Lock:从jdk1.5开始使用的同步方法-称为显示同步

* 原理:Lock本身是接口,要通过他的子类创建对象干活儿

* 使用过程:

* 首先调用lock()方法获取锁

* 进行同步的代码块儿

* 使用unlock()方法释放锁

* 使用的场景:

* 当进行多生产者多消费者的功能时,使用Lock,其他的都使用synchronized

* 使用效率上:Lock高于synchronized

## 多线程的单例

//饿汉式,由于公共方法中只有一行公共的代码,所以不会产生线程安全问题

class SingleInstance1{

private static final SingleInstance1 s = new SingleInstance1();

private SingleInstance1() {

}

public static SingleInstance1 getInstance() {

return s;

}

}

//懒汉式,

class SingleInstance2{

private static SingleInstance2 s = null;

private SingleInstance2() {

}

public static SingleInstance2 getInstance() {

if (s == null) {//尽量减少线程安全代码的判断次数,提高效率

synchronized (SingleInstance2.class) {//使用同步代码块儿实现了线程安全

if (s == null) {

s = new SingleInstance2();

}

}

}

return s;

}

## 线程停止

1.通过一个标识结束线程

2.调用stop方法---因为有固有的安全问题,所以系统不建议使用.

3.调用interrupt方法----如果目标线程等待很长时间(例如基于一个条件变量),则应使用 interrupt 方法来中断该等待。

到此,相信大家对"Java中怎么创建自己的线程对象"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

线程 方法 对象 同步 代码 功能 安全 普通 任务 任务区 内容 块儿 好处 子类 字节 实际 建议 效率 文件 条件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 贵州工商学院网络安全专业 信安网络安全是什么 公安局网络安全保卫支队 数据库中如何实现实体完整性 璧山区企业网络技术服务是什么 浪潮服务器芯片事件 数据库中有数据哪种情况下查不到 怎么给数据库添加数据 滴滴被网络安全审查始末 魔兽世界什么服务器稳定 美博网络技术上海有限公司 sql数据库错误还原 咨询公司数据库建设和运营 深圳中联网络技术有限公司 服务器和存储业务 电商网站数据库设计项目报告 天津服务器机柜 品冠软件开发 网络服务器架构设计图解 你为什么要从事软件开发 鹤壁金蝶销售软件开发 公司加班软件开发 网络安全攻防演练动员会讲 软件开发数额较大做啥科目 网络服务器设备如何接地 java读取又密码的服务器文件 回合制游戏软件开发 免费纸飞机服务器代理分享 收看维护网络安全简报 网络安全插画海报复杂
0