【前面的话】
实际项目在用spring框架结合dubbo框架做一个系统,虽然也负责了一块内容,但是自己的能力还是不足,所以还需要好好学习一下基础知识,然后做一些笔记。希望做完了这个项目可以写一些dubbo框架和spring框架方面的总结。
学习过程中的小知识点总结,基础知识,选择阅读。
【线程定义】
在学习操作系统的时候,学习过什么是进程,什么是线程,下面这只维基百科里面关于线程的定义,大家可以看一下:
定义:线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。
【实现方法】
1. 第一种继承:Thread类
1 class 类名extends Thread{ 2 方法1; 3 方法2; 4 …… 5 public void run(){ 6 实现代码 7 } 8 }
2. 第二种:实现Runnable接口
1 class 类名 implements Runnable{ 2 方法1; 3 方法2; 4 …… 5 public void run(){ 6 实现代码 7 } 8 }
【三段代码】
第一段代码,就是一个很简单,就是和多线程没有关系的一段测试代码。
第二段代码,使用继承Thread的方法实现多线程。
第三段代码,使用实现Runnable接口的方法实现多线程。
第一段代码:
1 public class NoThreadTest { 2 private String noThread1; 3 public NoThreadTest(){ 4 } 5 public NoThreadTest(String noThread1){ 6 this.noThread1=noThread1; 7 } 8 public void run(){ 9 for(int i=0;i<3;i++){ 10 System.out.println(noThread1+"非多线程运行结果 "+i); 11 } 12 } 13 public static void main(String[] args){ 14 NoThreadTest maintest1=new NoThreadTest("我是A"); 15 NoThreadTest maintest2=new NoThreadTest("我是B"); 16 maintest1.run(); 17 maintest2.run(); 18 }