Java线程小笔记

来源:互联网 发布:分镜头制作软件 编辑:程序博客网 时间:2024/06/07 09:10

JAVA线程

摘抄于 Java线程详解

Java里面对于线程主要有 java.lang.Thread  &  java.lang.Runnable的支持

和Java中任何其他对象一样,线程的实例也是对象,具有变量和方法,创建和消失在堆中。


Thread 的构造方法:

Thread(Runnable target)
Thread(Runnable target, String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)


线程离开运行状态的三种方法:

1、调用Thread.sleep():使当前线程睡眠至少多少毫秒(尽管它可能在指定的时间之前被中断)。

2、调用Thread.yield():不能保障太多事情,尽管通常它会让当前运行线程回到可运行性状态,使得有相同优先级的线程有机会执行。

3、调用join()方法:保证当前线程停止执行,直到该线程所加入的线程完成为止。然而,如果它加入的线程没有存活,则当前线程不需要停止。


线程执行的问题:

1.一系列线程以某种顺序启动并不意味着将按该顺序执行。对于任何一组启动的线程来说,调度程序不能保证其执行次序,持续时间也无法保证。

2.一旦线程启动,它就永远不能再重新启动。只有一个新的线程可以被启动,并且只能一次。一个可运行的线程或死线程可以被重新启动。

3.线程的调度是JVM的一部分,在一个CPU的机器上上,实际上一次只能运行一个线程。一次只有一个线程栈执行。JVM线程调度程序决定实际运行哪个处于可运行状态的线程。


线程主要有新状态(仅是创建阶段),可运行状态(start方法调用后),运行状态,等待/阻塞/随眠状态,死亡态(run方法执行完)

注意事项

线程睡眠是帮助所有线程获得运行机会的最好方法。


原创粉丝点击