多线程的使用方法及注意事项

进程:应用程序的执行实例  有独立的内存空间和系统资源

线程:CPU调度和分派的基本单位  进程中执行运算的最小单位,可完成一个独立的顺序控制流程


多线程:在一个进程中同时运行多个线程,用来完成不同的工作
多个线程交替占用CPU资源,而非真正的并行执行


好处:
充分利用CPU的资源
简化编程模型
带来良好的用户体验

主线程:
main()方法即为主线程入口
产生其他子线程的线程
必须最好完成执行,因为它执行各种关闭动作

创建线程的两种方法:
    继承Thread类
    Runnable接口 的类无法直接start() 需要创建一个Thread 才可以点出来start()

使用线程的步骤
    定义线程-创建线程对象-启动线程-终止线程

继承Thread类
    编写简单,可直接操作线程
    适用于单继承实现

当多个线程共享同一个资源时,一个线程未完成全部操作的时候,其他线程修改的数据,造成数据不安全问题。

                线程的状态
        创建状态     阻塞状态    死亡状态(自然)

            就绪状态      运行状态

setPriority(int  newPriority)    更改线程的优先级

static void sleep(long millis)    在指定的毫秒数内让当前正在执行的线程休眠

void join()                    等待该线程终止

static void yield()            暂停当前正在执行的线程对象,并执行其他线程
(提供一种可能,但是不能保证一定会实现礼让)
void interrupt()            中断线程

boolean isAlive()            测试线程是否处于活动状态

            Synchronized的用法
是一种同步锁
构造方法不能写 但是可以写在方法里面 用静态块来使用

ArrayList类的add()方法为非同步方法
当多个线程同时运行时,会发生错误
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值