线程基础

        多线程在java编程领域就是一个比较难也是相对赚钱的本事,最近接手了一个新项目, 是一个处理订单的系统,异步处理订单,定时任务来定时扫描配置表, 用到了很多的多线程编程,而且其中的设计模式也用到了许多,不过是个挺老的系统,与剖析tomcat一样,我会详细去理解这个系统,并争取写出文章来,(ps:之前的tomcat没有完结,打算这礼拜或者这个过年补上)单论多线程编程的好处就是充分利用多核处理器,异步操作数据,不必阻塞所有线程,我们现在就开始从项目中学习多线程编程,当然欢迎指点我会改正我认识的不够的地方,争取完成这一套关于多线程的博文。
1.线程与进程
        线程的理解就是处理器的一次请求,比如单单一个http请求就是一个线程去操作的,用户点击鼠标确定之后,之后的操作直到http请求发出之前,都是一个线程完成的。
        进程的理解:曾看到许多线程就成为了一个进程,当你打开安卓手机后台,查看后台应用程序,那些就是进程,一个应用可能会有好几个进程。
        一个应用至少一个进程,一个进程至少有一个线程。
2.线程的状态
        new 状态,新建线程,第一种方法extends Thread 并override run方法,第二种方法实现Runnable接口。当然还是偏向后者。
        Runnable状态,调start方法,启动线程。
        blocking阻塞状态,线程请求的资源被其他线程占用,等待其他线程离开以后再获取同步的监视器锁,这就是阻塞状态。
        waiting状态,超时等待,
        终止状态,determined.
3.并发模型
        java中使用的并发模型是共享内存并发模型,线程之间的通信是隐式的,线程之间的同步是显式的。了解java并发对你学习多线程是有利无害的,如果想要更加深入的学习推荐一本《java多线程编程核心技术-高洪岩》或者去infoq官网搜java内存模型。
        知道了以上的前提之后,学习java多线程编程就会有一定基础。现在进一步熟悉多线程,提出一个场景,当A、B两个人约定了一个去A处的咖啡厅见面要交换书籍,两人20分钟内见面,可是A 10分钟就到了,把书放在桌子上,B没有和A见面,只是看到了A的本子。如果A在到了地点以后,等待,知道B到了才一起将书本互换,请理解这里面的线程并发模型。并结合线程状态,理解第一种情况和第二种情况A、B线程分别为什么状态,是否有同步?

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值