thread urls

http://www.iteye.com/topic/132844

 

http://www.iteye.com/topic/81152

 

http://www.iteye.com/wiki/topic/95080

 

 

http://topic.csdn.net/u/20080808/19/50b93bce-de31-45fe-98b3-7dbd75e8d225.html http://www.xker.com/page/e2008/0419/52208.html http://www.iteye.com/wiki/topic/108927 http://www.blogjava.net/tonyzhou00/archive/2008/02/25/141272.html http://www.javaresearch.org/article/59009.htm java面试题大全-EJB方面 http://www.javaresearch.org/article/59011.htm java面试题大全-基础方面 http://www.javaresearch.org/article/59007.htm java面试题大全-代码与编程题 http://www.javaresearch.org/article/59008.htm 线程可以从准备就绪队列中得到,并在可获得的系统 CPU 上运行。 操作系统和Java 虚拟机都可以控制线程的移动。 抢占式线程中,操作系统可以在任何时候打断线程。【时间片】 抢占式线程模型要求线程正确共享资源,协作式模型却要求线程共享执行时间。由于 JVM 规范并没有特别规定线程模型,Java 开发员必须编写可在两种模型上正确运行的程序。在了解线程以及线程间通讯的一些方面之后,我们可以看到如何为这两种模型设计程序。 线程互相通信来同步它们的动作,上锁。。。 信号量计数: 生产者消费者问题 用 volatile 关键字来声明变量,就可以告诉编译器在编译的时候,不需要通过预测变量值来优化这部分的代码。 sleep()使当前线程进入停滞状态,所以执行sleep()的线程在指定的时间内肯定不会执行;yield()只是使当前线程重新回到可执行状态,所以执行yield()的线程有可能在进入到可执行状态后马上又被执行。 sleep()可使优先级低的线程得到执行的机会,当然也可以让同优先级和高优先级的线程有执行的机会;yield()只能使同优先级的线程有执行的机会。 当调用wait()后,线程会释放掉它所占有的“锁标志”,从而使线程所在对象中的其它synchronized数据可被别的线程使用。 waite()和notify()因为会对对象的“锁标志”进行操作,所以它们必须在synchronized函数或synchronized block中进行调用。如果在non-synchronized函数或non-synchronized block中进行调用,虽然能编译通过,但在运行时会发生IllegalMonitorStateException的异常。 文章出处:http://www.diybl.com/course/3_program/java/javajs/20071023/79541.html JVM创建主线程,并调用main方法。 Swing、Servlet、RMI、EJB 正在运行的线程由OS产生,JVM产生线程对象。 thread.join(); 分解为多个小问题求解。。。 停止:结束,异常,stop 调度:sleep 和 yield 守护程序线程:java在所有的非Deamon进程结束后结束。 多个线程一起做。 3.定义静态变量 4.先start线程,再join,结果时要同步。(t.start(),t.join()) swing不是deamon,所以要用System.exit来结束 new Timer().schedual(new TimeTask(),10); Servlet and JSP RMI ====共享对数据的访问。 受控方式访问: volatile:绕过cache synchronized:互斥,更改可见 锁是用来保护代码块的,等待相同锁的线程不能同时进行,但是等待不同锁的线程可以同时进行。 synchronized实例方法 == synchronized(this) synchronized静态方法 == synchronized(A.class) 同步Map 1.Collections.synchronizedMap 2.自己封装: synchronized(map){} 同步的基本特征: 1.互斥(synchronized) 2.可见性(volatile) 3.时机:读可能已经修改过的,写可能要读的 只使用synchronized有没有可能出现锁。 final方便线程使用 在持有锁的时候,不要对其它对象调用方法。 不要阻塞。 使代码块保持简短 notify代替notifyAll是有风险的。

你可能感兴趣的:(jvm,thread,面试,swing,ejb)