java并发编程
文章平均质量分 58
黎九州
这个作者很懒,什么都没留下…
展开
-
1.4 线程的状态和基本操作
首先本质上 wait 和 notify 是用于线程之间通信的,wait() 表示当前获取到锁的线程进入休眠状态并释放锁,notify() 表示当前获取到锁的线程去唤醒曾经获取到该锁的 wait() 的休眠线程,这里有一个很关键的点,就是他们通信的基础是获得或者曾经获得的是同一个锁而在 Java 中,锁是放在对象上的,所以可以说这两个线程的通信要依赖于这个对象才行,如果不放在对象上,也可以用 Thread.wait( Object o) 把对象传递进去,但是从设计的角度来说,还不如把方法直接放在对象上。原创 2023-04-23 14:58:37 · 438 阅读 · 0 评论 -
1.3 创建线程的四种方式
Callable是实现多线程编程的接口,只有一个call()方法,用于执行异步任务并返回一个泛型对象,可以通过Future获取线程执行的结果。Future是一个接口,用于表示一个异步任务计算的结果,常见的Future接口的实现类有FutureTask、CompletableFuture等。Future对象,可以通过get()方法来获取异步任务的执行结果。如果任务还没有执行完成,get()方法会阻塞,直到任务执行完成并返回结果。原创 2023-04-16 10:20:07 · 253 阅读 · 0 评论 -
1.2 线程和进程区别
线程和进程都是操作系统中的概念,用于描述正在运行的程序的执行状态。进程和线程都是操作系统的基本概念,进程是计算机中运行的程序的一个实例,线程是进程中的一个执行流。进程有自己独立的内存空间和系统资源,进程之间相互独立,互相隔离。线程共享进程的内存空间和系统资源,多个线程可以在同一时间内执行不同的任务。线程的切换和创建的代价比进程要小得多,因此线程的并发度和性能比进程更高。原创 2023-04-11 20:57:01 · 137 阅读 · 0 评论 -
1.1什么是多线程,多线程的优劣?
每个线程都有自己的执行栈和程序计数器,但它们共享程序的代码段、静态数据、堆和方法区等资源。综上所述,多线程的优点在于提高程序性能、充分利用多核处理器、支持异步编程、提高程序可伸缩性、支持更高的并发度和实现复杂业务逻辑。但同时也存在一些缺点,如线程安全问题、调试和测试困难、线程间的通信和同步、资源占用和调度开销等。:多线程程序需要占用更多的系统资源和内存,线程的调度和切换也会带来一定的开销。:多线程程序需要考虑线程间的通信和同步,编写更复杂的程序逻辑和代码。原创 2023-04-11 20:45:44 · 992 阅读 · 0 评论 -
1.1并行和并发有什么区别?
在多核处理器上,每个任务可以在不同的 CPU 核心上并行执行,从而提高程序的运行速度。例如,一个大型的图像处理程序可以将图片分成多个部分,每个部分在不同的 CPU 核心上并行处理,从而提高处理速度。在单核处理器上,多个任务使用时间片轮换方式来共享 CPU 时间,看起来像是同时执行。例如,在一个 Web 服务器上,多个客户端同时发送请求,服务器可以并发地处理多个请求。并发通常是为了提高系统的吞吐量和资源利用率,而并行则是为了加快单个任务的处理速度。并发是指多个任务在同一时间段内。原创 2023-04-11 17:58:47 · 137 阅读 · 0 评论 -
1.1并发编程三要素是什么?
同时,在编写并发程序时,需要遵循并发编程的最佳实践,如避免共享变量、减少锁的粒度、避免死锁等。:可见性指的是多个线程之间对共享变量的修改是可见的。在并发编程中,如果一个线程修改了共享变量的值,其他线程可能无法立即看到这个变化,从而出现数据不一致的问题。:原子性指的是一个操作是不可中断的,即要么操作全部完成,要么操作完全没有执行。:有序性指的是程序执行的顺序是按照代码的顺序执行的。在并发编程中,由于多个线程之间的执行是异步的,所以程序的执行顺序可能会发生变化,从而导致程序出现错误。原创 2023-04-11 17:46:45 · 680 阅读 · 0 评论 -
1.1 并发编程的优缺点
由于并发编程涉及多个线程之间的相互依赖和同步,容易导致死锁和饥饿现象,需要采用合适的同步机制和算法来避免这些问题的发生。:并发编程需要多个线程同时运行,对CPU和内存等硬件资源的要求较高,需要合理地配置硬件资源来保证程序的运行效率。:Java并发编程可以使用异步编程模型,允许程序在等待I/O操作完成时不会阻塞线程,从而提高程序的并发性。:Java并发编程需要考虑多个线程之间的同步、竞态条件等问题,因此并发编程的复杂度要比单线程编程高得多。原创 2023-04-11 15:17:17 · 210 阅读 · 0 评论