java多线程学习与总结
来源:互联网 发布:如何带领团队 知乎 编辑:程序博客网 时间:2024/06/05 22:38
线程
是程序中的执行线程。Java 虚拟机允许应用程序同时运行多个执行线程。
每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代码创建一个新 Thread 对象时,该新线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时,新线程才是守护程序。
当 Java 虚拟机启动时,通常都会有单个非守护线程(它通常会调用某个指定类的 main 方法)。Java 虚拟机会继续执行线程,直到下列任一情况出现时为止:
1.调用了 Runtime 类的 exit 方法,并且安全管理器允许退出操作发生。
2.非守护线程的所有线程都已停止运行,无论是通过从对 run 方法的调用中返回,还是通过抛出一个传播到 run 方法之外的异常。
创建线程的方法:
创建新执行线程有两种方法。一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的 run 方法。接下来可以分配并启动该子类的实例。<p>public class ThreadTest { public static void main(String[] args) throws InterruptedException { new MyThread().start(); for (int i = 0; i <= 50; i++) { Thread.sleep(50); System.out.println("MainThread:i="+i); } }}</p><p>class MyThread extends Thread{ public void run() { for (int i = 0; i <= 50; i++) { try { Thread.sleep(50); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("MyThread:i="+i); } }}</p>
创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run 方法。然后可以分配该类的实例,在创建Thread时作为一个参数来传递并启动。采用这种风格的同一个例子如下所示:
<p><span style="font-size:18px;">public class ThreadTest { public static void main(String[] args) throws InterruptedException { new Thread(new MyThread()).start(); for (int i = 0; i <= 50; i++) { Thread.sleep(50); System.out.println("MainThread:i="+i); } }}</span></p><p><span style="font-size:18px;">class MyThread implements Runnable{ public void run() { for (int i = 0; i <= 50; i++) { try { Thread.sleep(50); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("MyThread:i="+i); } }}</span></p>
0 0
- java多线程学习与总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- Java多线程学习与总结(ThreadGroup)
- Java多线程学习与总结(Join)
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结(转)
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- JAVA多线程与并发学习总结
- 程序员必须知道的10大基础实用算法及其讲解
- linux下的一些简单命令操作
- LeetCode OJ - Path Sum II
- 计算机网络(自顶向下方法)学习笔记 1.3 网络核心
- 使用c函数实现的常用函数
- java多线程学习与总结
- 在二叉树中求位于先序序列中第k个位置的结点的值
- Struts2标签取值方式
- 论坛看到的一个随机数面试题
- n个元素进栈,共有多少种出栈顺序?
- servlet在eclipse中搭建
- VLine2.0——仿阿里巴巴VIPABC真人视频在线教育(基于Flash支持一对多多对多Web在线视频)
- Crystal Report 在 VS 2010 中的使用和发布
- CSS中Position的使用方法