多线程之创建线程方式和注意事项

本文详细介绍了Java中四种创建线程的方式,包括继承Thread类、实现Runnable接口、实现Callable接口以及使用线程池,并讨论了线程安全问题,包括同步代码块、同步方法和Lock锁的使用,还涵盖了线程通信、线程优先级以及面试相关知识点。
摘要由CSDN通过智能技术生成

目录

创建线程方式一:

创建线程方式二:

线程安全:

解决线程安全方式3:通过增加锁lock来实现线程安全;

面试题:

面试题:

创建多线程方式三:实现Callable()接口:

创建线程方式4:使用线程池


创建线程方式一:

1:新建子类继承Thread类

2:重写run()方法-->把该线程需要执行的代码放入run()方法中

3;创建子类对象,执行对象.start()方法

代理对象线程:new Thread(){

                                run();   //重写run方法

                        }.start()

----------------------------------------------------------------------------------------------------------

thread中常用的方法:

1:start();        启动线程,调用当前线程的run方法

2:run();        重写Thread类中的此方法,把该线程才需要执行的操作声明放入其中

3 : currentThread();        静态方法,返回执行当前代码的线程

4 : yirld();        释放CPU当前的执行权

5 : join();        在线程a中加入线程b的join(),a进入阻塞状态,只有当b执行完才会结束a线程的阻塞 状态

6 : sleep(long millitime);        静态方法,让线程睡眠指定毫秒数

7:getname();        获取挡墙线程的名字

8:setname();        设置当前线程的名字

9:isAlive();        判断当前线程是否存活

------------------------------------------------------------------------------------------------------------------

线程优先级:MAX_PRIORITY:10

                      NOR_PRIORITY:5

                      MIN_PRIORITY:1

getPriority();       得到当前线程的优先级

setPriority(int  i);        设置当前线程的优先级

说明:高优先级的线程强占低优先级的CPU执行权,但是只是概率的有更高的优先权,并不意味着只有当执行完高优先级的才执行低优先级的线程,这只是概率问题;

****************************************************************************************************

创建线程方式二:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值