前言

大家好,给大家带来第十节:详细讲解一下Java多线程,随机文件的概述,希望你们喜欢

  • 多线程的概念
  • 线程的生命周期
  • 多线程程序的设计

多线程的概念

多线程的概念:程序是静态的,进程是动态的。多进程是操作系统中多个程序同时执行。线程是最小的执行单位,同类的线程共享内存空间和系统资源。

多线程独享资源有:寄存器,系统堆栈,多线程就是多个线程同时执行。

多线程指多个线程同时运行,并且每个线程可以执行不同的任务。

线程(可称为轻负荷进程)

  • 线程特点:可以共享内存空间系统资源

线程的生命周期

进程有创建和销毁过程,线程也是,线程也是从创建,运行到销毁的过程。

线程:创建,可运行,运行中,挂起,死亡五种。

编程个多线程:

  1. 通过继承线程类Thread来创建;
  2. 通过建立实现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

  1. 多线程就是调用这个synchronized的方法的,
  2. 当线程用了这个方法,那么其他线程想使用这个方法时就得等,直到线程使用完该调用的方法。

同步中的等待

  1. wait()方法:暂时让出cpu;
  2. 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多线程,随机文件的更多相关文章

  1. 想要金九银十面试通关,不懂 Java多线程肯定是不行的!

    作者 | 纳达丶无忌 如果对什么是线程.什么是进程仍存有疑惑,请先 Google 之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用 CPU 的资源,因为所有的多线程代码都 ...

  2. java 多线程超详细总结——阿里大牛熬夜整理

    引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...

  3. Java多线程之线程池详解

    前言 在认识线程池之前,我们需要使用线程就去创建一个线程,但是我们会发现有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因 ...

  4. Java多线程(五)线程的生命周期

    点我跳过黑哥的卑鄙广告行为,进入正文. Java多线程系列更新中~ 正式篇: Java多线程(一) 什么是线程 Java多线程(二)关于多线程的CPU密集型和IO密集型这件事 Java多线程(三)如何 ...

  5. Java多线程之细说线程池

    前言 在认识线程池之前,我们需要使用线程就去创建一个线程,但是我们会发现有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因 ...

  6. Java多线程的同步机制(synchronized)

    一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在 java里边就是拿到某个同步对象的锁(一个对象只有一把锁): 如果这个时候同步对象的锁被其他线程拿走了,他(这个 ...

  7. java多线程实现TCP网络Socket编程(C/S通信)

    目录 开篇必知必会 一.多线程技术 二.实现多线程接收 1.单线程版本 2.多线程版本 三.多线程与进程的关系 四.客户端界面完整代码 五.多线程通信对比 最后 开篇必知必会 在前一篇<Java ...

  8. 第九节:详细讲解Java中的泛型,多线程,网络编程

    前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...

  9. 第五节:详细讲解Java中的接口与继承

    前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...

随机推荐

  1. TXLSReadWriteII5 单元格读写

    unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

  2. js实现图片上传预览功能,使用base64编码来实现

    实现图片上传的方法有很多,这里我们介绍比较简单的一种,使用base64对图片信息进行编码,然后直接将图片的base64信息存到数据库. 但是对于系统中需要上传的图片较多时并不建议采用这种方式,我们一般 ...

  3. 作为一名程序员,在面试中如何展现你Python的coding能力?

    来源商业新知,原文标题:如何在一场面试中展现你对Python的coding能力? 如果你已经通过了招聘人员的电话面试,那么下面正是该展现你代码能力的时候了.无论是练习,作业,还是现场白板面试,这都是你 ...

  4. 安装好ubuntu双系统启动时卡死解决办法

    问题描述:在安装完ubuntu双系统后,第一次启动ubuntu系统时,卡死在启动界面(或者黑屏),这大概都是由于显卡驱动的原因,具体不在这里阐述,通过以下方法能成功解决,据我个人经验,这可能是诸多方法 ...

  5. aio,nio ,io 心得

    1.nio 流的过程有几个,连接,可读,读 ,返回 :连接了不一定可读,等待浪费时间,这些时间可以去读其他的连接,selector是管理,管理全部测一下可不可读,只对可读的连接进行读取.同时,nio有 ...

  6. pipeline-安全测试

    代码安全检查 需要安装SonarQube(版本6.7,安装了Findbugs插件) MySQL >=5.6,笔者安装的是MySQL 5.7版本 Jenkins需要安装下列插件: SonarQub ...

  7. MAC book 无法删除普通用户的解决办法

    1来自苹果官网 macOS Sierra: 删除用户或群组 如果您是管理员,当您不想再让某些用户访问 Mac 时,可以删除他们.您也可以删除不想要的群组. 删除用户时,您可以存储该用户的个人文件夹(包 ...

  8. ROLAP、MOLAP和HOLAP区别

    对没有使用过数据仓库的人,对这三个概念确实是有点混淆不清.包括我自己本身不是做数据仓库出身,所以实际上是从实践出发,理论基础是有点匮乏的. 一.基本概念 1. OLAP OLAP(on-Line An ...

  9. 优秀的 Spring Cloud 开源软件

    Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均衡.断路器.数据监控等,都可以用 ...

  10. MYSQL库,表,记录的基本操作

    数据库操作 1.显示数据库 show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于用户测试数据 information_schema - MySQL本身架构 ...