`
yangyi
  • 浏览: 115720 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

多线程的知识

阅读更多
多线程的优点:
1 多核利用
2 为单个任务建模方便
3 异步处理不同事件,不必盲等
4 现代的UI也需要它
风险:
1 同步变量易错误
2 因资源限制导致线程活跃性问题
3 因2导致的性能问题
用途:
框架,UI,Backend
线程安全的本质是什么:
并非是线程和锁,这些只是基础结构,本质是如何控制共享变量访问的状态
什么是线程安全:
就是线程之间的执行还没有发生错误,就是没有发生意外
一个线程安全的类本身封装了对类内部方法和变量的异步请求,调用方无需考虑线程安全问题
无状态的变量总是线程安全的
原子性:
完整执行的单元,如不加锁控制,则会发生竞态条件,如不加锁的懒汉单例模式,或者复合操作。
锁,内在锁,重入:
利用synchronized关键字控制访问单元,同一线程可以重入锁内部,避免了面向对象产生的问题。同一变量的所有出现场合应该使用同一个锁来控制。synchronized(lock)。
即使所有方法都用synchronized控制也不能保证线程安全,它可能在调用时编程复合操作。
活跃性和性能问题:
过大的粒度会导致这个问题,用锁进行异步控制,导致了线程的顺序执行。
简单和性能是一对矛盾,需要适当的取舍。不能在没有考虑成熟的情况下,为了性能去牺牲简洁性。
要尽量避免耗时操作,IO和网络操作中使用锁
分享到:
评论

相关推荐

    多线程知识总结

    ### 多线程知识总结 #### 一、线程基础概念 **线程状态:** 在探讨多线程之前,我们需要了解线程的基本状态转换。一个典型的线程生命周期包括以下几个阶段: 1. **Start(启动):** 当线程被创建后调用`start()`...

    Java多线程知识点总结

    了解线程池的概念也是Java多线程编程中的一个重要知识点。线程池是一种多线程处理形式,它将线程和任务的概念分离开来,能够有效管理线程资源,减少线程创建和销毁的开销,提高程序性能。Java中可以通过Executors类...

    Java多线程知识点整理.pdf

    Java多线程知识点整理.pdf

    Java多线程知识,龙果学院

    "Java多线程知识,龙果学院"这一课程显然是针对这部分内容进行深入讲解的资源,旨在帮助开发者提升在多任务环境下的编程能力。 一、Java多线程基础 1. **线程的概念**:线程是程序执行的最小单元,一个进程可以有...

    java多线程知识讲解及练习题

    Java 多线程知识讲解及练习题 Java 多线程基础知识的了解是 Java 程序设计的重要组成部分,本资源摘要信息对 Java 多线程基础知识进行了详细的讲解和练习题。 1. sleep() 和 wait() 的区别 sleep() 是 Thread 类...

    Java多线程知识点思维导图

    对Java线程总体知识的梳理,主要描述了关键知识点,可以梳理一下思路!

    VC串口多线程知识汇总

    本篇文章将围绕"VC串口多线程知识汇总"的主题,结合提供的文件内容进行详细讲解。 首先,我们来了解一下串口通信。串口通信是一种通过串行数据传输的方式,通常用于设备间的短距离通信。在VC++中,实现串口通信主要...

    63-Java多线程知识点总结1

    Java多线程知识点总结 Java多线程知识点总结主要讲解了Java中多线程编程的基础知识,包括线程的启动、volatile变量、多线程共享数据、wait、notify、notifyAll等。 线程的启动 在Java中,线程的启动可以通过start...

    java 多线程知识点思维导读

    java 多线程知识点思维导读

    多线程知识点.xmind

    多线程知识点.xmind

    多线程知识学习整理一阶段

    多线程知识学习整理一阶段

    多线程知识梳理.xmind

    从多线程的基础、线程同步、线程间通信、线程调度、线程池、并发容器、线程安全的集合、原子变量等方面去罗列主要知识点,以思维导图的方式进行呈现,可以让读者更条理清晰的在最短的时间内掌握多线程的主要知识

    多线程知识点

    多线程在我们的开发应用中也是回很常用的,希望里面的内容能够可以帮助到你们解决掉你们想要的问题,这是我所期望看到的

    java并发, java多线程知识点总结,最全思维导图,互联网大厂面试必备

    java并发, java多线程知识点总结,最全思维导图,互联网大厂面试必备

    多线程知识多线程知识多线程知识

    通过理解和熟练掌握多线程知识,开发者可以编写出更加高效、响应迅速的应用程序,充分利用现代计算机系统的硬件资源。然而,使用多线程的同时,也需要关注线程安全、性能优化以及死锁等问题,以保证程序的稳定性和...

    多线程知识点相关总结.xmind

    多线程技术知识点总结

    C++ 多线程求PI

    以下是一些关键的C++多线程知识点: 1. `std::thread` 类:这是创建新线程的基础,通过传递函数或成员函数指针以及参数来启动新的执行路径。 ```cpp #include void calculatePartOfPi(int start, int end) { //...

    易语言多线程框架图

    接下来,根据文件内容,可以整理出以下具体的多线程知识点: 1. 启动按钮:这可能指的是一种触发机制,通过按钮点击来启动多线程程序,开始任务的执行。 2. 信号量许可证:在易语言中创建信号量,作为控制多个线程...

    多线程知识点,很好的啊。可以看看的啊

    本文将深入探讨多线程的基础知识,以帮助理解其工作原理。 首先,我们要区分进程和线程。一个进程是操作系统分配资源的基本单位,比如内存空间。在进程中,线程是能够并发执行的代码流。线程共享进程的资源,例如...

Global site tag (gtag.js) - Google Analytics