首页 > 其他分享 >2023-12-04

2023-12-04

时间:2023-12-04 22:35:39浏览次数:43  
标签:状态 同步 04 对象 互斥 12 线程 2023 执行

2023-12-04

线程常用方法

  1. yield 线程的礼让。让出CPU,让其他线程执行,但让的时间不确定,所以不一定礼让成功
  2. join 线程的插队。线程的一旦插入成功,则肯定先执行完插入的线程的所有任务

用户线程和守护线程

  1. 用户线程:也叫工作线程,当线程任务执行完或者收到通知来结束

  2. 守护线程:一般是为工作线程服务的,当所有用户线程结束,守护线程自动结束

    (常见:垃圾回收机制)

  3. 将子线程设置为主线程结束时结束:子线程名.setDaemon(true);

线程的生命周期

线程可以处于的六种状态

  1. NEW:尚未启动的线程处于此状态
  2. RUNNABLE:在java虚拟机中执行的线程处于此状态
  3. BLOCKED:被阻塞等待监视器锁定的线程处于此状态
  4. WAITING:正在等待另一个线程执行特定动作的线程处于此状态
  5. TIMED_WAITING:正在等待另一个线程执行动作达到指定等待时间的线程处于此状态
  6. TERMINATED:已退出的线程处于此状态

线程状态转换图

image

注意事项

  1. RUNNABLE状态可以细化为READY(准备就绪)和RUNNING(运行中)状态
  2. 获取线程当前状态:线程名.getState()

Synchronized

线程同步机制

  1. 在多线程中,一些敏感的数据不允许被多个线程同时访问,此时使用同步访问技术。保证数据在任何同一时刻,最多有一个线程访问,以保证数据的完整性
  2. 线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作

同步具体方法

image

互斥锁

  1. 在java语言中,引入了对象互斥锁的概念,来保证共享数据时操作完整性
  2. 每个对象都对应一个可以称为”互斥锁“的标记,这个标记用来保证在任意时刻,只能有一个线程访问该对象
  3. 关键字Synchronized用来与对象的互斥锁联系,当某个对象用Synchronized来修饰时,表明该对象在任意时刻,只能有一个线程访问。
  4. 同步的局限性:导致程序的执行效率降低
  5. 同步方法(非静态的)的锁可以是this的,也可以是其他对象的(默认为this)
  6. 同步方法(静态的)的锁为当前类本身(默认为当前类.class)

实现步骤

  1. 分析上锁的代码
  2. 选择同步代码块或同步方法
  3. 要求多个线程的锁的对象为同一个

标签:状态,同步,04,对象,互斥,12,线程,2023,执行
From: https://www.cnblogs.com/lzyO-o/p/20231204-n04kf.html

相关文章

  • 20231204
    好困,好累,好晕。好想呆在家里睡大觉!又是效率极低的一天,也许真的该休息了(?)晚上跑到初三机房,然后发现自己又热又晕,要死了啦!在犇犇里发了会儿电居然还有人理我。。不知道是感动还是麻木。随便整了一下v4,不过话说这都什么年代了怎么还有人在用v4啊喂!不过话说回来,我用vc是......
  • 2023.12.4——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.jfinal明日计划:学习......
  • 12
    \(X=1\)首先构造题目一般都很难想到,所以我们先打上一个暴力,把序列以及模数输出#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=1000;inta[N];intmain(){ for(inti=1;i<=9;i++) { for(intj=1;j<=i;j++) a[j]=j; do{ if(!chec......
  • 2023.12.4 近期练习
    CF1845E这种\(01\)串的描述方式一般是提出\(1\)的位置去讨论,设原串\(1\)出现位置是\(p_1,...,p_m\).考虑最后生成的串的性质,描述其\(1\)的位置,\(q_1,...q_m\)。那么至少移动步数为\(\sum|p_i-q_i|\),因为\(1\)的位置是相对不变的。考虑一个一个\(1\)往里填,设\(......
  • 2023-2024-1学期 20232316戴露 《网络空间安全导论》第五章学习总结
    信息内容洪流中何去何从(第五章内容安全基础)依我看来,本章节围绕网络空间安全中一个重要关键词“信息内容安全”展开了详细论述。个人梳理了此章节的整体逻辑框架,大致可分为是什么,为什么和怎么做三个方面来展开是什么信息内容安全的背景互联网朝着开放性、异构性、移动性、动......
  • 2023ICCV_FSI Frequency and Spatial Interactive Learning for Image Restoration in
     三.Network 1.  2.FLB:没看懂是怎么分离的水平和竖直方向 3.SLB:每一层保留一半的通道特征用于细化,其余的在特征重构后输出(没看懂)。Multi-distillationNetwork 超分辨网络的Multi-distillationNetwork(2019ACMMM_LightweightImageSuper-ResolutionwithIn......
  • 2023-11-13第十二周记录
    2023-11-13第十二周11-13缩点上周周末去ccpc深圳打了次星。四道签到题就写了一题,打的时候都有种要爆0的感觉。平时在学校还是打的太安逸了,觉得自己打的还挺好。确实是缺少拷打。没办法,菜就多练。上周看了下连通性的一些知识点,今天的目标就是把缩点和2-sat的知识点学了,再去补......
  • 2023大二上第十一周记录
    2023大二上第十一周随笔前面几周浅浅练了一下最小生成树和二分图的题(最小生成树还有好几题没写,好难,回头再补)。连通性问题这块我还是一点没学过。所以这周还是先看看连通性问题这块知识。2023-11-10(周五)这个星期比较懒,前面都没怎么学。今天才开始。今天看的资料:双连通分量-......
  • AcWing 1205. 买不到的数目
    题面:水果糖被包成\(n\)颗一包和\(m\)颗一包的两种,用这两种包装来组合,不能拆包卖。在\(4\)颗一包和\(7\)颗一包的情况下,最大不能买到的数量是\(17\)。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。原题链接:1205.买不到的数目-AcWing数论:组合......
  • 12.4每日总结
    今天完成了人机交互C/S结构用户界面设计【实验编号】10003809547j 图形用户界面设计【实验学时】8学时【实验环境】l 所需硬件环境为微机;l 所需软件环境为MicrosoftVisualStudio2013【实验内容】编写一整套Mis系统UI界面,Mis系统名称自拟,尽量运用到如下控件:l......