学习线程1之建立线程,并启动

第一步:建立线程类,并启动线程

 1 /**
 2  * 【1】实现Runnable接口,重写run方法。
 3  * 【2】run方法内的逻辑代码就是线程体
 4  * 【3】创建线程类的对象
 5  * 【4】创建线程类的代理对象
 6  * 【5】代理对象调用start(),启动线程
 7  * @author it-c-1201
 8  *
 9  */
10 public class MyThread implements Runnable{
11
12     //线程体
13     public void run() {
14         for(int a=0;a<100;a++){
15             System.out.println("MyThread.run(线程体运行)"+a);
16         }
17
18     }
19
20
21     public static void main(String[] args) {
22         //创建真实角色。线程体本身的对象
23         MyThread myThread=new MyThread();
24         //创建静态代理角色
25         Thread dailiMyThread=new Thread(myThread);
26         //启动线程
27         dailiMyThread.start();
28
29         for(int a=0;a<100;a++){
30             System.out.println("MyThread.main(main方法)"+a);
31         }
32     }
33
34
35 }

第二步:展示测试结果

 1 MyThread.main(main方法)0
 2 MyThread.run(线程体运行)0
 3 MyThread.run(线程体运行)1
 4 MyThread.run(线程体运行)2
 5 MyThread.run(线程体运行)3
 6 MyThread.main(main方法)1
 7 MyThread.main(main方法)2
 8 MyThread.main(main方法)3
 9 MyThread.main(main方法)4
10 MyThread.main(main方法)5
11 MyThread.main(main方法)6
12 MyThread.main(main方法)7
13 MyThread.main(main方法)8
14 MyThread.main(main方法)9
15 MyThread.main(main方法)10
16 MyThread.main(main方法)11
17 MyThread.main(main方法)12
18 MyThread.main(main方法)13
19 MyThread.run(线程体运行)4
20 MyThread.run(线程体运行)5
21 MyThread.run(线程体运行)6
22 MyThread.main(main方法)14
23 MyThread.main(main方法)15
24 MyThread.main(main方法)16
25 MyThread.main(main方法)17
26 MyThread.main(main方法)18
27 MyThread.main(main方法)19
28 MyThread.run(线程体运行)7
29 MyThread.main(main方法)20
30 MyThread.main(main方法)21
31 MyThread.main(main方法)22
32 MyThread.main(main方法)23
33 MyThread.run(线程体运行)8
34 MyThread.main(main方法)24
35 MyThread.main(main方法)25
36 MyThread.run(线程体运行)9
37 MyThread.main(main方法)26
38 MyThread.run(线程体运行)10
39 MyThread.main(main方法)27
40 MyThread.main(main方法)28
41 MyThread.main(main方法)29
42 MyThread.main(main方法)30
43 MyThread.main(main方法)31
44 MyThread.main(main方法)32
45 MyThread.main(main方法)33
46 MyThread.main(main方法)34
47 MyThread.main(main方法)35
48 MyThread.run(线程体运行)11
49 MyThread.main(main方法)36
50 MyThread.run(线程体运行)12
51 MyThread.main(main方法)37
52 MyThread.run(线程体运行)13
53 MyThread.main(main方法)38
54 MyThread.run(线程体运行)14
55 MyThread.main(main方法)39
56 MyThread.run(线程体运行)15
57 MyThread.main(main方法)40
58 MyThread.run(线程体运行)16
59 MyThread.main(main方法)41
60 MyThread.run(线程体运行)17
61 MyThread.main(main方法)42
62 MyThread.run(线程体运行)18
63 MyThread.main(main方法)43
64 MyThread.run(线程体运行)19
65 MyThread.main(main方法)44
66 MyThread.run(线程体运行)20
67 MyThread.main(main方法)45
68 MyThread.run(线程体运行)21
69 MyThread.main(main方法)46
70 MyThread.run(线程体运行)22
71 MyThread.main(main方法)47
72 MyThread.run(线程体运行)23
73 MyThread.main(main方法)48
74 MyThread.run(线程体运行)24
75 MyThread.main(main方法)49
76 MyThread.run(线程体运行)25
77 MyThread.main(main方法)50
78 MyThread.run(线程体运行)26
79 MyThread.main(main方法)51
80 MyThread.run(线程体运行)27
81 MyThread.main(main方法)52
82 MyThread.run(线程体运行)28
83 MyThread.main(main方法)53
84 MyThread.run(线程体运行)29
85 MyThread.main(main方法)54
86 MyThread.run(线程体运行)30
87 MyThread.main(main方法)55
88 MyThread.run(线程体运行)31
89 MyThread.main(main方法)56
90 MyThread.run(线程体运行)32
91 MyThread.main(main方法)57
92 MyThread.run(线程体运行)33
93 MyThread.main(main方法)58

时间: 2024-10-26 02:57:06

学习线程1之建立线程,并启动的相关文章

转:学习笔记: Delphi之线程类TThread

学习笔记: Delphi之线程类TThread - 5207 - 博客园http://www.cnblogs.com/5207/p/4426074.html 新的公司接手的第一份工作就是一个多线程计算的小系统.也幸亏最近对线程有了一些学习,这次一接手就起到了作用.但是在实际的开发过程中还是发现了许多的问题,比如挂起与终止的概念都没有弄明白,导致浪费许多的时间. TThread-简单的开始 在Delphi的VCL中封装了一个TThread类用于多线程的开发,这样比较符合面向对象的思想,同时又可以提

python学习笔记-(十三)线程、进程、多线程&amp;多进程

为了方便大家理解下面的知识,可以先看一篇文章:http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html 线程 1.什么是线程? 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 2.python GIL全局解释器锁(仅需了解) 无论你启多少个线程,你有多少个cpu, Python在执行的时

Java线程学习笔记(二) 线程的异常捕捉

线程异常的捕捉: 正常的情况下,我们在main()方法里是捕捉不到线程的异常的,例如以下代码: public class ExceptionThread implements Runnable{ @Override public void run() { throw new NullPointerException(); } public static void main(String[] args) { ExecutorService executorService = Executors.n

疯狂Java学习笔记(62)------------线程初识

线程初识 没有线程编程的程序好比一个人一只手干活,而多线程的程序就好比一个人多只手干活. 进程是系统资源分配的独立单位,而线程是可调度运行的独立单位,一个进程可以拥有多个线程,线程是进程并行完成的多个任务. 进程.线程.并发执行 首先我们先来认识一下进程.线程.并发执行的概念: 一般来说,当运行一个应用程序的时候,就启动了一个进程,当然有些会启动多个进程.启动进程的时候,操作系统会为进程分配资源,其中最主要的资源是内存空间,因为程序是在内存中运行的. 在进程中,有些程序流程块是可以乱序执行的,并

疯狂Java学习笔记(63)-----------线程进阶

Java线程各个阶段的状态: 那么我们开始一点点研究吧: 启动线程 一.定义线程 1.扩展java.lang.Thread类. 此类中有个run()方法,应该注意其用法: public void run() 如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable 对象的 run 方法:否则,该方法不执行任何操作并返回.   Thread 的子类应该重写该方法. 2.实现java.lang.Runnable接口. void run() 使用实现接口 Runnable

Android-Universal-Image-Loader 学习笔记(五)线程池分析

UniveralImageLoader中的线程池 一般情况网络访问就需要App创建一个线程来执行(不然可能出现很臭的ANR),但是这也导致了当网络访问比较多的情况下,线程的数目可能指数增多,虽然Android系统理论上说可以创建无数个线程,但是某一时间段,线程数的急剧增加可能导致系统OOM. 在UIL中引入了线程池这种技术来管理线程.合理利用线程池能够带来三个好处. 第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗. 第二:提高响应速度.当任务到达时,任务可以不需要等到线

java基础知识回顾之java Thread类学习(十二)-- 线程中断

官方文档翻译: 如果本线程是处于阻塞状态:调用线程的wait(), wait(long)或wait(long, int)会让它进入等待(阻塞)状态,或者调用线程的join(), join(long), join(long, int), sleep(long), sleep(long, int)也会让它进入阻塞状态.若线程在阻塞状态时,调用了它的interrupt()方法,那么 它的“中断状态”会被清除并且会收到一个InterruptedException异常.例如,线程通过wait()进入阻塞状

疯狂Java学习笔记(64)------------线程转换

线程的生命周期 由上图可以看出: 线程的状态转换是线程控制的基础.线程状态总的可分为五大状态:分别是生.死.可运行.运行.等待/阻塞. 各个状态细节不再赘述,具体请看http://blog.csdn.net/u011225629/article/details/46288995此篇博文 此篇博文主要讲述各个状态的实例! 一.新建和就绪状态 此处不做细致的讲解,在上一篇博文中已经讲解过了! package com.haixu.thread2; public class InvokeRun exte

Java并发编程学习笔记(一)线程安全性 1

什么是线程安全性: 要编写线程安全的代码,其核心在于要对状态访问操作进行管理,特别是对共享的和可变的状态的访问."共享"意味着变量可以由多个线程同时访问,而"可变"则意味着变量的值在其生命周期内可以发生变化. 一个对象是否需要线程安全的,取决于他是否被多个线程访问.这指的是在程序中访问对象的方式,而不是对象要实现的功能.要使得对象时线程安全的,需要采用同步机制来协同对对象可变状态的访问.如果无法实现协同,那么可能导致数据破坏以及其他不该出现的结果. 如果当多个线程访