并发编程
文章平均质量分 86
败给你的黑色幽默丶
if i say you're the one would you believe me;
if i ask you to stay would you show me the way
展开
-
【Java 并发编程】【05】线程安全问题与线程同步
5. 线程安全问题与线程同步多线程编程是有趣且复杂的事情,它常常容易突然出现“错误情况”,这是由于系统的线程调度具有一定的随机性。即使程序在运行过程中偶尔会出现问题,那也是由于我们的代码有问题导致的。当多个线程访问同一个数据时,非常容易出现线程安全问题。5.1 线程安全问题所谓线程安全问题,其实就是多线程在并发访问的时候,对共享内存中的共享对象的属性进行修改所导致的数据冲突问题Keyword:并发访问共享内存共享对象 (共享内存中的共享对象)属性的修改 (方法是在栈中,不会有并发问题)原创 2022-01-21 14:13:19 · 3028 阅读 · 0 评论 -
【Java 并发编程】【04】线程的生命周期
4 线程的生命周期一个完整的生命周期中通常要经历如下的五种状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)、死亡(Dead)。CPU需要在多条线程之间切换,于是线程状态会多次在运行、阻塞、就绪之间切换。1.新建new之后当一个Thread类或其子类的对象被声明并创建时,新生的线程对象处于新建状。此时它和其他Java对象一样,仅仅由JVM为其分配了内存,并初始化了实例变量的值。此时的线程对象并没有任何线程的动态特征,程序也不会执行它的线程体run()。2原创 2022-01-21 14:12:03 · 65 阅读 · 0 评论 -
【Java 并发编程】【03】Thread类API
3 .Thread类API3.1 创建线程对象相关构造器:Thread():创建新的Thread对象Thread(String threadname):创建线程并指定线程实例名Thread(Runnable target):指定创建线程的目标对象,它实现了Runnable接口中的run方法Thread(Runnable target, String name):创建新的Thread对象,并命名线程体和启动线程:public void run():子类必须重写run()以编写线程体pu原创 2022-01-21 14:11:13 · 448 阅读 · 0 评论 -
【Java 并发编程】【02】线程的创建和启动
2. 线程的创建和启动Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的对象。每个线程的作用是完成一定的任务,实际上就是执行一段代码,我们称之为线程执行体。Java使用run方法来封装这段代码,即run方法的方法体就是线程执行体。方式一:继承Thread类创建线程类通过继承Thread类来创建并启动多线程的步骤如下:(1)定义继承Thread的子类,并重写该类的run()。查看Thread类的源代码,发现当我们没有传target时,那么Thread类的run()就是一原创 2022-01-21 14:09:44 · 248 阅读 · 0 评论 -
【Java 并发编程】【01】线程概述及应用
多线程相关知识:1.JavaSE : 多线程基础2.JUC : 多线程高级一些概念:1.程序: 完成某个任务、功能 用某种语言编写的一组指令的集合。2.软件: 软件 = 程序 + 程序运行所需文件 一个软件中可能有很多个程序3.进程: 程序的一次运行。一个进程就是一个正在运行中的程序,可以看做是一款软件对应一个进程;每个软件(每个进程)之间是独立的,操作系统在分配资源(内存)的时候,是以进程为单位的。因此进程之间进行通信(交换数据)时,成本比较高,相当于两个软件之间进行通信。原创 2022-01-21 14:07:08 · 489 阅读 · 0 评论