码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • java多线程编程(学习笔记)入门


    一、多线程创建的三种方式

    (1)通过继承Thread本身

     (2)通过实现runnable接口

    (3)通过 Callable 和 Future 创建线程

    其中,前两种不能获取到编程的结果,第三种能获取到结果

    二、常见的成员方法

    方法名称说明
    String getName()返回此线程的名称
    void setName(String name)设置线程的名字(构造方法也可以设置名字)
    static Thread currentThread()获取当前线程的对象
    static  void sleep(long time)让线程休眠指定的时间,单位为毫秒
    setPriority(int newPriority)设置线程的优先级
    final int getPriority()获取线程的优先级
    final void setDaemon(boolean on)设置为守护进程

    public static void yield()

    出让线程/礼让线程
    public static void join()插入线程/插队线程 

    构造方法不能继承

    守护线程:当其他的非守护线程执行完毕之后,守护线程会陆续结束

    三、线程的生命周期

    四、线程安全问题

    (1)同步代码块

     把操作共享数据的代码锁起来

    格式:

    //锁对象,一定要是唯一的

    static Object obj = new Object();

    synchronized(锁){

    操作共享数据的代码

    }

    特点一:锁默认打开,有一个线程进去了,锁自动关闭

    特点二:里面的代码全部执行完毕,线程出来,锁自动打开

    (2)同步方法

    格式:

    修饰符 synchronized 返回值类型 方法名(方法参数){

    }

    特点一:同步方法是锁住方法里面所有的代码

    特点二:锁对象不能自己指定

    非静态:this

    静态:当前类的字节码文件对象

    StringBuilder 和StringBuffer

    单线程用一,多线程用二

    (3)lock锁

    lock实现提供比使用synchronized方法和语句可以获得更广泛的锁定操作

    lock提供了获得锁和释放锁的方法

    void lock():获得锁

    void unlock():释放锁

    Lock是接口不能直接实例化,这里采用它的实现类ReentrantLock来实例化

    ReentranLock的构造方法

    ReentrantLock():创建一个ReentrantLock的实例

  • 相关阅读:
    bff层解决了什么痛点
    client-go实战之八:更新资源时的冲突错误处理
    华为机试真题 Java 实现【等和子数组最小和】【2022.11 Q4新题】
    【读书笔记】【Effective STL】算法
    标准化数据模型
    GeoServer服务迁移出现 EncryptionOperationNotPossibleException 错误的解决方案
    视频推流、视频处理、拉流、手机预览演示
    【Vue面试题二十七】、你了解axios的原理吗?有看过它的源码吗?
    物联网开发笔记(16)- 使用Wokwi仿真micropython on ESP32开发板实现跑马灯(4个LED)
    一言不合就重构
  • 原文地址:https://blog.csdn.net/qq_63499305/article/details/136318636
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号