JAVA多线程并发编程学习笔记1——进程和进程安全

本文介绍了JAVA并发编程的基础知识,包括进程与线程的概念、优缺点,Java中的线程操作,以及线程安全的重要性。详细讲解了线程安全的三大特性:原子性、可见性和有序性,强调了在多线程环境下确保数据一致性的重要机制。
摘要由CSDN通过智能技术生成

JAVA并发编程

1. 介绍

1.1 进程与线程

1.1.1 概念

进程:计算机中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位(比如内存、文件句柄、安全证书)。程序在各自的进程上运行,可以简单理解为运行的程序。

线程:是进程的一个执行单元,以单一顺序的控制流作为进程的执行分支。共享进程范围内的资源(比如内存、文件句柄),但都有自己的程序计数器、栈和本地变量。

1.1.2 线程的优点
  • 降低开发和维护的开销
  • 在GUI程序中改进用户接口的响应性
  • 在服务器应用中提高资源的利用率和吞吐量
1.1.3 线程的风险
  • 安全危险:线程交替占有运行时,导致意外结果。
  • 活跃度的危险:多线程带来活跃度失败,如死锁、饥饿、活锁。
  • 性能危险:上下文切换(挂起当前线程,运行另一个线程)的频繁进行导致巨大的系统开销;同步机制限制编译器的优化。
1.1.4 线程引入的开销
  • 上下文切换
  • 内存同步
  • 阻塞
1.1.5 Java中的线程

​ JVM启动时会创建一个主线程,该主线程负责执行main方法;以及一些进行自身的常规管理线程(如垃圾回收、终结处理)。

1.2 并行与并发

  • 并行(parallel):同时处理多个任务
  • 并发(concurrent):有处理多个任务的能力,但不一定是同时。

1.3 Java线程操作

1.3.1 创建与启动
  • 创建一个线程就是创建Thread类对象,可以直接定义Thread类子类或定义Runnable接口的实现类,并重写run方法,即线程要执行的任务。

    // 方法一
    public class MyThread 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值