多线程
来源:互联网 发布:js 大于等于 小于等于 编辑:程序博客网 时间:2024/05/17 09:01
概念:多线程是指多个线程的并发技术,即同一时刻运行多个任务,目的是为了提高资源的使用率从而提高系统的效率。
实现:1.硬件上的实现由多核心处理器;2.软件上来说JAVA中实现多线程的方式有两种:继承Thread类和实现Runnable接口,(在JDK1.5后加入Executor包专门用来实现提供线程池,专门用来实现多线程)。后者使用起来更加灵活,不限制类的集成体系。两种方法都要实现run()方法,run()方法是线程运行的逻辑内容。线程的启动时通过start()方法来启动,start()方法是线程进入可运行状态,等待CPU执行运行。
状态:线程的状态有初始化态、可运行态、运行态、阻塞态、终止态。New Thread线程进入初始化态,运行start()方法使线程进入可运行态。进入可运行态后等待操作系统分配CPU时间片进入运行态。run()方法结束后进入结束态。在运行态有两种特殊的情况:1)如果遇到等待数据输入或者sleep(),线程进入阻塞态。进入阻塞态后线程并不释放对象锁,数据输入或者sleep()时间到后,线程又会由阻塞态进入可运行状态;2)如果调用了wait(),线程会释放对象锁,进入对象锁的等待队列。等到其他线程运行notify/notifyAll,进入对象锁池并有机会重新拿到对象锁,如果拿到对象锁,线程重新进入可运行态。
同步与通信:多线程的同步是通过来synchronized实现的,它保证同一时刻只能有一个线程访问被修饰的共享资源。多线程的通信主要有系统间的消息通讯和线程同步。线程同步是通过wait(),notify(),notifyAll()来实现的。wait()释放对象锁,notfify/notifyAll唤醒当前对象锁的等待的线程(一个或者多个)。
多线程的应用:1)WEB程序 2)数据库连接池 3)WEB容器 如tomcat
参考文献:http://developer.51cto.com/art/200907/140261_1.htm
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 多线程
- 【树状数组 + 容斥原理】 HDOJ 4947 GCD Array
- 【知识小课堂】 之 聚合函数
- 俸菊疵韶训
- poj 1674 Sorting by Swapping
- max = (a>b) ? (c>d ? 1 : 2) : 3
- 多线程
- nyist oj 214 单调递增子序列(二) (动态规划经典)
- android的ListView点击item使item展开的做法
- Codeforces #261 (Div. 2) A. Pashmak and Garden(水题)
- Cocos2d-x 3.x 系列教程02-创建自定义项目
- 武帝纪(曹操传)
- 认识LINUX各个版本
- 进程和线程
- cocos2d anchor与moveBy、moveTo