Java进程和线程概念及多线程的创建

Java进程和线程概念及多线程的创建

1.并发与并行

学习进程与线程首先要了解什么是并发和并行?
并发:指两个或多个事件在同一个时间段内发生(多线程操作同一个资源)
并行:指两个或多个事件在同一时刻发生(多个线程同时执行)

举例:
并发:CPU单核,模拟出多线程,天下武功,唯快不破,快速交替
并行:Cpu多核,多个线程同时执行

2.进程和线程的概念

进程:一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可
     行同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位;
     系统运行一个程序即是一个进程从创建、运行到消亡的过程
线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一
      个线程.一个进程是可以有多个线程的,这个应用程序也可以称之为多线程程序
简而言之:一个程序运行后至少有一个进程,一个进程中可以包含线程

举例:QQ.exe就是一个进程,打开QQ后发送功能(…)就是线程

3.多线程

如果使用单线程,那么程序就必须等待这些操作执行完成之后才能执行其他操作,
显然不符合我么现在的快速的节奏.使用多线程,可以在将耗时任务放在后台继续执行时,
同时执行其他操作。

主要的优点:.
    可以提高程序的效率
缺点:
   使用太多线程,是很耗系统资源,因为线程需要开辟内存。更多线程需要更多内存。
影响影系统性能,因为操作系统需要在线程之间来回切换. 

总结:多线程是异步的,但这不代表多线程真的是几个线程是在同时进行,实际上
是系统不断地在各个线程之间来回的切换(因为系统切换的速度非常的快,所以给我们
在同时运行的错觉)

4.创建多线程的两种方法(常用):

1、继承Thread类,重写run()方法
//方式1
package cn.itcats.thread.Test1;
 
public class Demo1 extends Thread{
  
 //重写的是父类Thread的run()
 public void run() {
  System.out.println(getName()+"is running...");
 }
  
 public static void main(String[] args) {
  Demo1 demo1 = new Demo1();
  Demo1 demo2 = new Demo1();
  demo1.start();
  demo2.start();
 }
}
2、实现Runnable接口,重写run()
package cn.itcats.thread.Test1;

public class Demo2 implements Runnable{
 
  //重写的是Runnable接口的run()
  public void run() {
      System.out.println("implements Runnable is running");
  }
   
  public static void main(String[] args) {
    Thread thread1 = new Thread(new Demo2());
    Thread thread2 = new Thread(new Demo2());
    thread1.start();
    thread2.start();
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值