博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA-多线程
阅读量:4696 次
发布时间:2019-06-09

本文共 781 字,大约阅读时间需要 2 分钟。

多线程

1、基本概念

  1.进程:独立运行的程序

    进程至少包含一个主线程

    进程中可以包含多个线程

  2.线程:进程中进行的流程

    多个并发的线程就是多线程

2、实现方法

  1.继承Thread类  

    1 重写run()里调用需要分线程执行的代码

    2 调用start()  start表示用新线程启动run()

  2.实现Runnable接口  目的:解决java单继承的问题

    1 实现run()

    2 通过Thread的构造方法,把Runnable实例化

    3 调用start()启动

3、线程的生命周期

  1.新建状态  构建了一个实例,但没开始执行

  2.可执行状态  调用了start方法,等待开始运行

  3.运行状态  cpu执行run()中的代码

  4.阻塞状态  

    调用sleep()  休眠时间,单位是毫秒

    调用join()  处于运行状态的a线程如果调用了其他线程的join()  那么a线程处于阻塞状态

            当目标线程执行完毕才结束阻塞,再继续运行

    执行I/O操作

  5.死亡状态  线程执行完毕

4、线程同步

  1. synchronized 关键字

  2.作用  防止共享对象在并发访问时出现错误

       确保共享对象在同一时刻只被一个线程访问

  3.方法  同步方法   ( 修饰符 synchronized 返回类型 方法名(参数列表){} )

       同步代码块  synchronized(对象或this){同步运行的代码}

                Object起到共享锁标志作用

转载于:https://www.cnblogs.com/jingfengling/p/5915480.html

你可能感兴趣的文章
node启动时, listen EADDRINUSE 报错;
查看>>
杭电3466————DP之01背包(对状态转移方程的更新理解)
查看>>
kafka中的消费组
查看>>
python--注释
查看>>
SQL case when else
查看>>
SYS_CONTEXT 详细用法
查看>>
Pycharm配置autopep8让Python代码更符合pep8规范
查看>>
我的第一篇博客
查看>>
【C++算法与数据结构学习笔记------单链表实现多项式】
查看>>
C#垃圾回收机制
查看>>
31、任务三十一——表单联动
查看>>
python之hasattr、getattr和setattr函数
查看>>
maven使用阿里镜像配置文件
查看>>
Copy code from eclipse to word, save syntax.
查看>>
arguments.callee的作用及替换方案
查看>>
23 Java学习之RandomAccessFile
查看>>
P2709 小B的询问
查看>>
PHP echo 和 print 语句
查看>>
第一讲 一个简单的Qt程序分析
查看>>
Centos 6.5下的OPENJDK卸载和SUN的JDK安装、环境变量配置
查看>>