第十节:详细讲解一下Java多线程,随机文件
前言
大家好,给大家带来第十节:详细讲解一下Java多线程,随机文件的概述,希望你们喜欢
- 多线程的概念
- 线程的生命周期
- 多线程程序的设计
多线程的概念
多线程的概念:程序是静态的,进程是动态的。多进程是操作系统中多个程序同时执行。线程是最小的执行单位,同类的线程共享内存空间和系统资源。
多线程独享资源有:寄存器,系统堆栈,多线程就是多个线程同时执行。
多线程指多个线程同时运行,并且每个线程可以执行不同的任务。
线程(可称为轻负荷进程)
- 线程特点:可以共享内存空间和系统资源。
线程的生命周期
进程有创建和销毁过程,线程也是,线程也是从创建,运行到销毁的过程。
线程:创建,可运行,运行中,挂起,死亡五种。
编程个多线程:
- 通过继承线程类Thread来创建;
- 通过建立实现Runnable接口的类。
Thread类,必须覆盖父类的run()方法:
class Mythread extends Thread{
public void run(){
}
}
创建一个实现Runnable接口的类,该接口只有一个方法:
public void run()
实现了Runnable接口的类,调用该对象的start()的方法来启动线程。
对于继承Thread类,就不能再次继承别的类了,是因为在Java中只允许单继承,不能多继承。而实现Runable接口,接口可以多实现多个接口。
- 线程的状态
- 常用方法
线程的一生,也就是生命周期,从创建,运行到消亡的过程。
创建:使用new创建线程对象后,系统没有提供运行的资源。
可运行状态:使用start()方法启动线程后系统就分配资源。
运行状态:线程用CPU进行。
阻塞状态:
public static native void sleep()
public final void wait()
死亡:
public final boolean isAlive()
常用方法
currentThread():该方法表示当前正在使用的线程;
Interrupt():该方法是“吵醒”处理休眠的线程。
- 线程的同步问题
- wait与notifyall方法
线程的同步
关键字synchronized
- 多线程就是调用这个synchronized的方法的,
- 当线程用了这个方法,那么其他线程想使用这个方法时就得等,直到线程使用完该调用的方法。
同步中的等待
- wait()方法:暂时让出cpu;
- notifyAll()方法:等待结束。
线程的联合方式
A.join(); //等线程 A 执行完毕
A.join(1000); //等待 A, 等待时间是1000毫秒
随机文件
RandomAccessFile,它既可以输入又可以输出
RandomAccessFile(File file,String mode)
"rw"写
RandomAccessFile(String name,String mode)
r读
writeXXX()----写对应信息
readXXX()----读对应的数据
writeInt()
write(byte类型数组)
writeDouble()
readInt()
read(byte类型数组)
readDouble()
如果觉得不错,那就点个赞吧!❤️
总结
- 本文讲了第十节:详细讲解一下Java多线程,随机文件,如果您还有更好地理解,欢迎沟通
- 定位:分享
Android&Java知识点,有兴趣可以继续关注
第十节:详细讲解一下Java多线程,随机文件的更多相关文章
- 想要金九银十面试通关,不懂 Java多线程肯定是不行的!
作者 | 纳达丶无忌 如果对什么是线程.什么是进程仍存有疑惑,请先 Google 之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用 CPU 的资源,因为所有的多线程代码都 ...
- java 多线程超详细总结——阿里大牛熬夜整理
引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...
- Java多线程之线程池详解
前言 在认识线程池之前,我们需要使用线程就去创建一个线程,但是我们会发现有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因 ...
- Java多线程(五)线程的生命周期
点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ...
- Java多线程之细说线程池
前言 在认识线程池之前,我们需要使用线程就去创建一个线程,但是我们会发现有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因 ...
- Java多线程的同步机制(synchronized)
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在 java里边就是拿到某个同步对象的锁(一个对象只有一把锁): 如果这个时候同步对象的锁被其他线程拿走了,他(这个 ...
- java多线程实现TCP网络Socket编程(C/S通信)
目录 开篇必知必会 一.多线程技术 二.实现多线程接收 1.单线程版本 2.多线程版本 三.多线程与进程的关系 四.客户端界面完整代码 五.多线程通信对比 最后 开篇必知必会 在前一篇<Java ...
- 第九节:详细讲解Java中的泛型,多线程,网络编程
前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...
- 第五节:详细讲解Java中的接口与继承
前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...
随机推荐
- matlab中变量问题——readonly 索引超出矩阵维度 workspacefunc 215
matlab程序运行过程中会出现如上提示,在网上检索未果,键入dbstop if error语句也无法定错误之处,就想这个错误不是一般的错误. 通过间隔打断点的方式最后定位错误为一句exist = f ...
- transform(转)
转自:https://zhuanlan.zhihu.com/p/54356280
- WMS常用表
--主数据 select * from sku; select * from pack; select * from userdatatranslation; ' ; SELECT * FROM LO ...
- db2常见命令
增加db2top命令的refresh间隔,默认值为2秒,下面的命令就可以每10秒刷新一次: $ db2top -i 10 -d sample 数据库本身太繁忙(dynamic SQL过多).建议增加 ...
- 20162322 朱娅霖 作业005&006 栈,队列
20162322 2017-2018-1 <程序设计与数据结构>第五.六周学习总结 教材学习内容总结 集合的介绍(总述) 集合是收集并组织其他对象的对象.主要分为线性集合(集合中的元素排成 ...
- 获奖感想和Java学习总结
获奖感想和Java学习总结 一.获奖感想 能成为小黄衫第二批的成员之一,我感到非常荣幸.我在对老师给予我的鼓励与肯定感到欣喜之余,更多的是感受到了一种鞭策与期望.小黄衫不仅仅是对我的一种奖励,更是激励 ...
- css3回顾 checkbox
<div class="checkBox"> <input type="checkbox" id="check1"> ...
- MySQL开发——【数据的基本操作】
增加数据 基本语法: insert into 数据表 [字段名称1,字段名称2..] values (数据1,数据2...); 特别注意:针对数据类型整型.浮点型数据可以不加单引或双引号,但是如果字段 ...
- SpringMVC Http请求工具代码类
在SpringMVC的源代码中也提供了一个封装过的ThreadLocal,其中保存了每次请求的HttpServletRequest对象,(详细请看org.springframework.web.con ...
- AI制作icon标准参考线与多面板复制
新建10个25x25像素,色值为RGB的画板 在视图中打开显示网格 打开首选项参考线和网格,间隔和隔线都设为1 新建一个20x20像素前景色为空描边为1像素的正方形 选择对齐选项中的对齐画板,使之与画 ...