Java高并发编程——多线程的实现方式(1)

本文参考博客http://blog.csdn.net/u011480603/article/details/75332435、https://www.cnblogs.com/felixzh/p/6036074.html

多线程的基本知识

1.1进程与线程的介绍

程序运行时在内存中分配自己独立的运行空间,就是进程

线程:它是位于进程中,负责当前进程中的某个具备独立运行资格的空间。

进程是负责整个程序的运行,而线程是程序中具体的某个独立功能的运行。一个进程中至少应该有一个线程。

1.2多线程的介绍

在多任务,多用户的系统中。每天都会产生许多进程。

多线程:在一个进程中,我们同时开启多个线程,让多个线程同时去完成某些任务(功能)。

(比如后台服务系统,就可以用多个线程同时响应多个客户的请求)

多线程的目的:提高程序的运行效率。

多线程的运行原理:cpu在线程中做时间片的切换(多线程可以提高程序的运行效率,但不能无限制的开线程)

1.3多线程的好处与线程安全问题

多线程的工作机制就好像是一个任务交给很多人去做,目的就是提高完成任务的效率,但同时也带来共享变量的线程安全问题,线程安全问题是指当多个线程同时读写一个状态变量,并且没有任何同步措施时候,导致脏数据或者其他不可预见的结果的问题,这样的问题往往是初学者容易犯的,也是我们应该尽量避免的。

1.3实现线程的四种方式

1、继承Thread的方式

public class MyThread1 extends Thread {
   
    @Override
    public void run() {
   
        for (int i=0;i<20;i++){
   
            System.out.println(Thread.currentThread().getName()+"-"+i);
        }
    }

    public static void main(String[] args) {
   
        new MyThread1().start();
        new MyThread1().start();
    }
}

2、声明实现 Runnable 接口的方式
  
  与继承Thread的方式实现多线程相比,这里更推荐使用实现Runnable接口的方式,原因:如果自己的类已经extends另一个类,就无法直接extends Thread,此时,可以实现一个Runnable接口,如下:

你可能感兴趣的:(java学习,Java,并发编程,多线程)