多线程

进程有自己独立的内存空间,线程之间是共享内存的

使用Thread来实现多线程,弊端比较多,不建议使用。

Runnable接口(最常用的实现多线程的接口,建议使用)

Runnable 接口 相对于 继承Thread类来说,有以下优点:
1, 适合多个相同程序的代码(同一段代码,开辟N个线程)去处理同一个资源(比如联网售票,票的个数是共同的)的情况。// 把线程(售票点),实现代码(卖票)和数据(票)有效的分离开,较好的实现了面向对象的设计思想。

2, 可以避免由于java的单继承特性所带来的局限性。比如:一个已经继承了父类的子类,就不能再继承Thread类,这时就可以用Runnable接口实现多线程。

3, 有利于程序的健壮性,代码和数据都可以被多个线程共享。当线程被开辟时,只需要把一个实现了代码和数据(如上面代码中的new TestThread)的对象(如上面代码中的tt)传入,此时的这个对象就是一个实现了Runnable接口的实例。


前(后)台线程:(后台线程也叫守护线程)
对JAVA程序来说,只要还有一个前台线程在运行,程序就不会结束。只有当程序只有后台线程在运行的时候,程序才会结束。

对于上面的程序来说,永远不会结束,因为前台线程是一个无限循环。
如果在new Thread(tt).start()前加上一句new Thread(tt).setDaemon(true);就会将该线程变为后台线程。

可以这么理解:前台循环有硬性规定(必须全部执行完)


多线程的同步:(只有涉及到线程安全的时候再使用)
使用同步的时候,所共享的数据,要设置为private。这样不会被外部访问或修改,可以保持一致性。
卖票系统中:有一个if(tickets>0)的判断,假设现在票数为1,执行判断结果为真。

就在此时,也许会突然转换为另一个线程(这个由cpu控制,有这种可能发生)。

这时在另一个线程tickets仍然为1,票数是共享的,所以在另一个线程结束后,票数会减1,此时的tickets是 0。

返回之前的线程湖,因为之前判断的时候,tickets是1,而此时tickets为0,打印出来的是0,如果线程多,还有可能出现-1,-2等。这样就会出现错误。(习惯称为线程安全问题)

概念性的东西太多 我也没学好 就不多说了........
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值