zoukankan      html  css  js  c++  java
  • 多线程编程

    一、Thread线程

     

    main thread为主线程,在主线程中开辟一个新的线程,两个线程会一并执行,互不影响,当两个线程执行完毕之后程序结束!

    二、术语:线程被抢占

    三、线程的属性

    四、实例代码

     

    五、Join and Sleep(单位毫秒)

    Join:等待新开辟的线程执行结束,在执行主方法的程序

    Sleep:线程休眠!停止当前线程等待对应时间!

    sleep和yield功能基本一致

     

     六、线程阻塞

     七、ThreadState(判断当前线程状态)

    ThreadState:为一个flag enum(枚举),通过按位的形式,可以合并数据的选项

     线程执行流程图

     八、解除阻塞Unblocking

     九、本地vs共享状态(尽量避免线程数据共享)

     本地:线程于线程之间的变量是独立的

     共享:线程之间共享一个变量信息

     静态字段在多线程中也是信息共享的

     十、线程安全

     lock加锁,只有一个线程可使用锁中内容,如果有一个线程在进行操作,那么另一个线程会进入一个假死状态,等待上一个线程结束后在执行锁中的内容!

     十一、向线程传递数据

    1.使用lambda表达式传递参数

     2.使用Threead的start传递参数(传递的参数的值类型为object类型)

     十二、异常处理(try catch语句放于方法之中,新开辟的线程不会被异常捕获到)

     十三、前台和后台线程(Foreground VS Background Threads)

     

     十四、线程的优先级

     十五、信号(Signaling)

     

     十六、富客户端应用程序的线程

     

     十七、同步上下文(Synchronizationb Contexts)

     

     十八、线程池(Thread Pool)

     

     

     

  • 相关阅读:
    使用 Facebook开源动画库 POP 实现真实衰减动画
    在命名空间下定义类型
    作为程序猿我给csdn博客加入打赏功能
    linux高可用集群heartbeat实现http的高可用
    杭电 HDU 1247 ACMHat’s Words(trie树 或着STL)
    取石子(一)-博弈数论
    区块链技术开发怎么结合已有产业链落地?
    KafkaConsumer assign VS subscribe
    KafkaConsumer assign VS subscribe
    KafkaConsumer assign VS subscribe
  • 原文地址:https://www.cnblogs.com/LanHai12/p/15258194.html
Copyright © 2011-2022 走看看