JAVA线程基础

1.程序,进程和线程的区别

先看概念:

程序:是为完成特定任务,用某种语言编写的一组指令的集合.即指一段静态的代码

进程:就是正在执行的程序,从windows角度讲,进程是操作系统进行资源分配的最小单位

线程:进程可进一步细化为线程, 是一个进程内部的最小执行单元,是操作系统进行任务调度的最小单
        元,隶属于进程
       简单来说,程序就是一段代码,你还未执行它,执行了后就叫进程,就是正在运行的程序,而线程就是程序的子程序,比如QQ聊天,你和多个人同时聊天,你打开了几个窗口就是几个线程

 2.线程和进程的关系

● 一个进程可以包含多个线程,一个线程只能属于一个进程,线程不能脱离进程
而独立运行;
● 每一个进程至少包含一个线程(称为主线程);在主线程中开始执行程序, java
程序的入口main()方法就是在主线程中被执行的。
● 在主线程中可以创建并启动其它的线程;
● 一个进程内的所有线程共享该进程的内存资源。
      通俗来讲,第一点可以这么理解,你在QQ和人聊天,打开了一个聊天窗口(一个线程),这时谁给你把QQ关了,这时你的聊天窗口也就不运行了,这就是线程是不能脱离进程的.
      第二点,就是程序的主线程(main线程),你要和人聊天,首先要启动QQ吧,你点了打开QQ按钮,就是启动了主线程
      第三点,你启动QQ后,就可以去使用里面的功能,打开其他功能啥的,聊天窗口等
      第四点,线程是进程的小弟,进程是大哥,小弟去共享大哥的资源     

3.来创建一个线程 

  我们如何来创建一个线程呢,这里有两种方式

继承Thread类的方式
实现Runnable接口的方式

首先来看第一个,直接上代码,这里是一个简单的示例

  运行结果

接着是第二个方法,我们来实现Runnable接口来实现

       这里我们引入了一个线程休眠的概念,现在电脑的cpu都很快,我们这里执行循环10次是很快的,直接就执行完了,所以我们让他休息一会儿继续执行,这样可以更清晰看到里面执行的细节,这里传入的单位是毫秒,这里也就是休眠1秒钟然后就继续执行了

我们可以看到,实现Runnable接口和继承Thread类方式有点区别,但并不影响,这样也可以避免Java只能单继承的缺点(实现接口)    同样我们在主线程里也循环了10次  ,同样休眠1秒

   我们来看看运行结果

       我们可以看到,主线程和其他线程并不是一个执行完,然后去执行另一个的,它们会同时去执行,至于执行结果,就要看CPU调度的问题了

       实现一个线程的方式除了以上二种还有去实现Callable接口,这个接口里提供的内容更加强大,具有返回值,支持泛型等,感兴趣可以去了解一下,但是注意: 线程是独立的,如果用以上两种方式,就必须去实现里面的 run() 方法,以下就不是线程

public class Sample {
   public void method1(String str){
   System. out.println(str);
}
public void method2(String str){
   method1(str);
}
public static void main(String[] args) {
   Sample s = new Sample();
   s.method2("hello!");
}
}                                                       以上这只是方法的调用,和线程没关系

4.继承方式和实现方式的联系与区别

【区别】
继承Thread: 线程代码存放Thread子类run方法中。
实现Runnable:线程代码存在接口的子类的run方法。
【实现Runnable的好处】
1)避免了单继承的局限性
2)多个线程可以共享同一个接口实现类的对象,非常适合多个相同线程来处
理同一份资源。

5.Thread类里常用的方法

6.在扩展一点线程的内容

  

结语

       线程的内容很多,这里仅仅只适用于用于刚接触线程的萌新帮助理解,简单介绍了一些线程的基础知识,实际上线程的内容远比这些要大得多,希望能对读到本文的有些帮助,谢谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值