- 浏览: 25844 次
- 性别:
- 来自: 杭州
最新评论
Thread的方法
sleep()
1. sleep ()函数有一个参数,通过参数可使线程在指定的时间内进入停滞状态,当指定的时间过后,线程则自动进入可执行状态。blocked线程池是进入阻塞状态的线程,跟锁没有关系。
2. 当调用sleep ()函数后,线程不会释放它的“锁标志”。
yield()
1.通过yield ()函数,可使线程进入可执行状态,排程器从可执行状态的线程中重新进行排程。所以调用了yield()的函数也有可能马上被执行。
2. 当调用yield ()函数后,线程不会释放它的“锁标志”。
join()
调用某线程的该方法,将当前线程与该线程"合并",即等待该线程结束,再恢复当前线程的运行。当前线程就是当前这行代码所在的线程。
Object的方法
wait()、notify()和notifyAll()
1. wait()函数有两种形式:第一种形式接受一个毫秒值,用于在指定时间长度内暂停线程,使线程进入停滞状态。第二种形式为不带参数,代表waite()在notify()或notifyAll()之前会持续停滞。wait线程池是被wait的线程的集合,等待被notify。
2. 当对一个对象执行notify()时,会从线程等待池中移走该任意一个线程,并把它放到锁标志等待池中;当对一个对象执行notifyAll()时,会从线程等待池中移走所有该对象的所有线程,并把它们放到锁标志等待池中。锁标志等待池中的线程就是等待获取该对象的锁权限,synchronized也会让线程进入锁标志等待池。
3. 当调用wait()后,线程会释放掉它所占有的“锁标志”,从而使线程所在对象中的其它synchronized数据可被别的线程使用。
wait()和notify()因为会对加锁的对象的“锁标志”进行操作,所以它们必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。通过对该对象的wait调用,会让当前线程进入等待状态。
sleep()
1. sleep ()函数有一个参数,通过参数可使线程在指定的时间内进入停滞状态,当指定的时间过后,线程则自动进入可执行状态。blocked线程池是进入阻塞状态的线程,跟锁没有关系。
2. 当调用sleep ()函数后,线程不会释放它的“锁标志”。
yield()
1.通过yield ()函数,可使线程进入可执行状态,排程器从可执行状态的线程中重新进行排程。所以调用了yield()的函数也有可能马上被执行。
2. 当调用yield ()函数后,线程不会释放它的“锁标志”。
join()
调用某线程的该方法,将当前线程与该线程"合并",即等待该线程结束,再恢复当前线程的运行。当前线程就是当前这行代码所在的线程。
Object的方法
wait()、notify()和notifyAll()
1. wait()函数有两种形式:第一种形式接受一个毫秒值,用于在指定时间长度内暂停线程,使线程进入停滞状态。第二种形式为不带参数,代表waite()在notify()或notifyAll()之前会持续停滞。wait线程池是被wait的线程的集合,等待被notify。
2. 当对一个对象执行notify()时,会从线程等待池中移走该任意一个线程,并把它放到锁标志等待池中;当对一个对象执行notifyAll()时,会从线程等待池中移走所有该对象的所有线程,并把它们放到锁标志等待池中。锁标志等待池中的线程就是等待获取该对象的锁权限,synchronized也会让线程进入锁标志等待池。
3. 当调用wait()后,线程会释放掉它所占有的“锁标志”,从而使线程所在对象中的其它synchronized数据可被别的线程使用。
wait()和notify()因为会对加锁的对象的“锁标志”进行操作,所以它们必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。通过对该对象的wait调用,会让当前线程进入等待状态。
发表评论
-
spring bean初始化
2015-05-20 17:51 4521.配置文件中每一个<bean>解析成一个Bean ... -
java 基本类型存储解析
2012-07-11 12:53 965byte b=-128; byte b=127; 都是可以编 ... -
nio
2012-01-31 16:57 755原来的I/O包和NIO处理数据最大的不同之处在于数据打 ... -
null
2012-01-30 17:34 526null可以转换成任何类的对象 -
java 线程
2012-01-17 14:37 708现在的系统的都是分时系统,达到多进程的效果。cpu只是将时间 ... -
java 访问修饰符
2012-01-12 10:34 674对于类成员(字段和方法)的访问权限来说, public:所有类 ... -
设计模式初学
2012-01-10 17:39 666代理模式只是原来对象的一个替身(原来对象约束了代理的行为) ... -
jndi学习
2012-05-26 19:10 689jndi--命名和目录服务api 用于查找远程的资源,例如 ... -
java 泛型学习--类型擦除
2011-12-26 17:58 1678类型擦除(type erasure)。 Java中的泛型基本上 ... -
java 泛型学习--泛型方法
2011-12-26 17:30 903通过在类的定义中添加 ... -
java 泛型学习--类型通配符
2011-12-26 17:17 842假设您具有该方法: void printList(Lis ... -
java 泛型学习
2011-12-26 16:42 743除了异常类型、枚举或匿名内部类以外,任何类都可以具有类型参数。 ... -
servlet path学习
2011-12-22 15:40 897servlet path就是取从context path后开始 ... -
log4j 学习
2011-12-16 11:01 904Log4j除了可以记录程序 ... -
java 可变长参数
2011-12-15 15:15 336[size=x-large] java 的可变长参数 例如: ... -
java垃圾回收
2011-12-12 19:16 614Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现 ... -
velocity性能优化
2011-12-09 11:16 9161.char to byte 字符转变字节,流用字节去输出 ... -
velocity 宏
2011-12-12 19:16 10891.方法当作参数化 当使用引用作为参数传递给Velocity ... -
ThreadLocal
2011-11-10 14:48 656每个线程有一个ThreadLocalMap对象,这是一个Map ... -
struts2 Codebehind Plugin
2011-11-08 15:32 3281.为未定义的action指定mapping When no ...
相关推荐
java多线程几个概念
java 线程安全的几个测试小例子,充分的理解JMM中的线程内存模型
几个java线程的例子,解释详细 几个java线程的例子,解释详细
虽然执行线程给人一种几个事件同时发生的感觉,但这只是一种错觉,因为我们的计算机在任何给定的时刻只能执行那些线程中的一个。为了建立这些线程正在同步执行的感觉,Java虚拟机快速地把控制从一个线程切换到另一个...
这是我总结的有关Java的线程的几个重要方法.doc,希望有所帮助!
JAVA集合、多线程
在Java程序中,JVM负责线程的调度。线程调度是值按照特定的机制为多个线程分配CPU的使用权。 调度的模式有两种:分时调度和抢占式调度。分时调度是所有线程轮流获得CPU使用权,并平均分配每个线程占用CPU的时间;...
多线程在实际开发中有着举足轻重的作用,但在教科书中并没有学到,本文以mysql(支持任何数据库)插入数据和查询数据为例子,讲述了如何在几秒钟内疯狂插入几十万数据,在一个方法中如何同时运行多条SQL语句(效率比...
里面包含了几个Java线程学习的例子,程序既简单又能让人很快理解线程的工作原理,是初学者不错的选择
死锁在java 线程如何解决?这个实例描述了几个人资源共享的情况
继承Thread类:创建一个类继承自java.lang.Thread类,并重写run()方法来定义线程的执行逻辑。然后可以创建该类的实例并调用start()方法启动线程。 java class MyThread extends Thread { public void run() { // ...
几个用java写的小例子,是学习的好参考。
项目主要包含以下几个部分: 1. 多线程下载:项目使用Java的多线程功能,将文件分成多个部分,每个部分由一个线程负责下载。这样可以充分利用网络带宽,提高下载速度。 2. 线程安全:项目中的多个线程需要共享资源...
尽管可以在等待wait()条件那里放一个超时设置,但等待wait()的设计目的不是这样的,等待wait()在设计上是用于Java线程间的通信。 而使用睡眠sleep()方式,可以让线程从当前开始睡眠指定的时间。注意不要使用睡眠...
本题目的研究内容包括以下几个方面:首先,研究Java多线程技术,包括线程的创建、同步、通信等机制,以及线程安全的概念和实现方法。然后,研究Http协议,包括Http请求和响应的格式、状态码等,以及如何利用Http协议...
下面小编就为大家带来一篇基于java 线程的几种状态(详解)。小编觉得挺不错的,现在就想给大家,也给大家做个参考。一起跟随小编过来看看吧
一、认识多任务、多进程、单线程、多线程 ...一个任务一般对应一个进程,也可能包含好几个进程。比如运行的MSN就对应一个MSN的进程,如果你用的是windows系统,你就可以在任务管理器中看到操作系统正在运行的进程信息。
一、总论:在JDK中提供了几种并发工具类 1)CountDownLatch(同步倒数计数器:等待多线程(或者多步骤)完成) 2)CyclicBarrier(循环屏障:同步屏障) 3)Semaphore(信号量:控制并发进程数) 主要参考...
关于线程的几个实例,有线程的死锁,同步,相关实例比较通用。
3、 几个常用的改变线程状态的方法 3 4、 线程的同步机制 8 5、 死锁 11 6、 线程间通信,也叫生产者与消费者问题 15 7、 浅析 Java Thread.join() : java多线程实现主线程等待所有子线程执行完毕 16 8、 线程运行...