首页 > 其他分享 >每周总结-第八周 多线程

每周总结-第八周 多线程

时间:2023-09-02 21:57:05浏览次数:36  
标签:Runnable 操作系统 每周 lock 第八 线程 多线程 方法

多线程概述:充分利用计算机资源,同时执行不同的操作

1.计算机操作系统 进程和线程

2.使用java来完成多线程的编码

3.线程中的常用方法

4.线程同步(重点)

5.死锁

6.生产者消费者模型 异步

操作系统简介

操作系统:本质上就是一个运行在一堆硬件上的巨型软件

没有操作系统的话,程序想要操控硬件,需要c语言或者汇编语言

有操作系统后,程序就可以借助操作系统这个中介来运行。

操作系统存在的意义:帮助上层应用程序屏蔽掉硬件的丑陋接口。

进程:是正在执行的程序,其实就是一块内存区域,存储着程序的资源。

线程:是被cpu调度的最小单位。

 

Java多线程

两种方法:

1.继承Thread类,重写run方法

使用线程:创建线程对象 调用start()方法启动一个线程

2.实现Runnable接口 创建run方法

使用线程:先创建Runnable对象 在创建线程对象,线程对象必须指向我的Runnable。

线程中的相关方法

setPriority() 设置优先级 1-10 (优先级高不意味着独占cpu)

sleep() 睡眠(重点) 每隔xxx时间去执行一个xxx操作

Join()让当前线程执行 ,主线程等待。

yield()让出cpu,让别人执行一下

interrupt()打断正在睡眠的线程

线程同步

当多个线程共享同一个资源,在某一个线程访问到这个资源的时候,把这个资源暂时封锁,等待执行结束,释放这个锁。

实现:

1.在方法声明上加一个synchronized关键字

2.在方法内部使用synchronized(){}语句块对特定对象上锁

3.手动上锁 :创建一个所锁

lock.lock()上锁

lock.unlock()解锁

 

标签:Runnable,操作系统,每周,lock,第八,线程,多线程,方法
From: https://www.cnblogs.com/sxwgzx23/p/17674264.html

相关文章

  • 多线程|饿汉模式和懒汉模式
    单例模式是只有单个实例的模式,应用在只能有一个实例的场景中。单例模式有很多种,这里介绍饿汉模式和懒汉模式两个单例。一、饿汉模式“饿汉”是一种形象的描述,“饿汉”看到吃的就非常急切,把这种急切的形象类比到Java中就是在类加载阶段就把实例创建出来了。什么是类加载?Java代码......
  • 第八周总结
    本周我着重复习了Hadoop的相关知识,并对以下几个方面进行了总结和学习: 1.Hadoop基本概念和架构:我回顾了Hadoop生态系统的基本概念和架构。我了解了Hadoop的两个核心组件:Hadoop分布式文件系统(HDFS)和MapReduce计算模型。我学习了Hadoop的分布式架构,包括主节点(NameNode)和数据节点(Da......
  • Redis队列Stream&Redis多线程详解(8)
    Redis目前最新版本为Redis-6.2.6,考虑到实际的情况,本次课程会以CentOS7下Redis-6.2.4版本进行讲解。下载地址:https://redis.io/download安装运行Redis很简单,在Linux下执行上面的4条命令即可,同时前面的课程已经有完整的视频讲解,请到网盘中下载观看,并自行安装。如安装过程出......
  • 第八周假期报告
    Linux是一个广泛使用的开源操作系统,在计算机科学和信息技术领域得到广泛应用。学习Linux的基础知识可以帮助你更好地理解和使用这个操作系统。以下是一些学习Linux基础的建议和内容:1.安装Linux:首先,你需要选择一种Linux发行版并安装到你的计算机上。一些常见的Linux发行......
  • java多线程
    实现Runnable接口publicclassMyRunnableimplementsRunnable{@Overridepublicvoidrun(){//线程执行的代码}}然后在主线程中创建一个线程对象,并启动该线程:Threadthread=newThread(newMyRunnable());thread.start();继承Thread类publicc......
  • 多线程与单线程执行的对比
    对比技术点:单线程:普通循环多线程框架:CompletableFuture多线程框架;ForkJoin50次对比实验 源码: packagecom.example.demo;importorg.apache.commons.lang3.time.StopWatch;importjava.util.ArrayList;importjava.util.List;importjava.util.concurre......
  • java 使用多线程的注意事项
    线程安全:确保共享资源的正确访问和修改,避免并发冲突。可以通过同步机制(如锁、互斥量、信号量等)或使用线程安全的数据结构来实现线程安全。案例:银行账户并发访问importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;classBankAccount{......
  • 多线程执行工具方法
    publicstatic<P,T>List<CompletableFuture<T>>multiThreadRun(Function<P,T>run,Collection<P>list,intthreadSize,Executorexecutor,booleanwaitRunFinal){List<CompletableFuture<T>>cf=newArr......
  • python多线程
    python多线程多线程threading,利用CPU和IO可以同时执行的原理多进程multiprocessing,利用多核CPU的能力,真正的并行执行任务异步IOasyncio,在单线程利用CPU和IO同时执行的原理,实现函数异步执行使用Lock对资源加锁,防止冲突访问使用Queue实现不同线程/进程之间的数据通信,实现生......
  • leetcode & c++多线程刷题日志
    1.按序打印按序打印解法互斥锁classFoo{mutexmtx1,mtx2;public:Foo(){mtx1.lock(),mtx2.lock();}voidfirst(function<void()>printFirst){printFirst();mtx1.unlock();}voidsecond(function<voi......