杰神之Java多线程基础概念和实现多线程

原创 2018年02月05日 21:03:03

线程与进程

  • 线程:进程中负责程序执行的执行单元
    线程本身依靠程序进行运行
    线程是程序中的顺序控制流,只能使用分配给程序的资源和环境
  • 进程:执行中的程序
    一个进程至少包含一个线程
  • 单线程:程序中只存在一个线程,实际上主方法就是一个主线程
  • 多线程:在一个程序中运行多个任务,目的是更好地使用CPU资源

线程的实现

继承Thread类

在java.lang包中定义, 继承Thread类必须重写run()方法,例:

class MyThread extends Thread{
    @Override
    public void run() {
        System.out.println("创建1个线程");
    }

创建好了自己的线程类之后,就可以创建线程对象了,然后通过start()方法去启动线程。注意,不是调用run()方法启动线程,run方法中只是定义需要执行的任务,如果调用run方法,即相当于在主线程中执行run方法,跟普通的方法调用没有任何区别,此时并不会创建一个新的线程来执行定义的任务。

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

实现Runnable接口

在Java中创建线程除了继承Thread类之外,还可以通过实现Runnable接口来实现类似的功能。实现Runnable接口必须重写其run方法。例:

public class Demo05 {
    public static void main(String[] args) {
        Runnable rImpl=new RunnableImpl();
        Thread thread = new Thread(rImpl);
        thread.start();
    }
}
class RunnableImpl implements Runnable{
    @Override
    public void run() {
        for (int i = 0; i < 50; i++) {
            System.out.println(Thread.currentThread().getName()+"--"+i);

        }
    }
}

Runnable的中文意思是“任务”,顾名思义,通过实现Runnable接口,我们定义了一个子任务,然后将子任务交由Thread去执行。注意,这种方式必须将Runnable作为Thread类的参数,然后通过Thread的start方法来创建一个新线程来执行该子任务。如果调用Runnable的run方法的话,是不会创建新线程的,这根普通的方法调用没有任何区别。

版权声明:本文为博主原创文章,未经博主允许不得转载。

杰神之Java多线程与死锁

多线程卖火车票问题: public class Demo05 { public static void main(String[] args) { newThread 买...
  • lyj243719866
  • lyj243719866
  • 2018年02月06日 21:45
  • 12

java多线程:消息队列的实现

1、定义一个队列缓存池: private static ListQueue> queueCache = new LinkedListQueue>(); 2、定义队列缓冲池最大消息数,如果达到该值,那么...
  • andybbc
  • andybbc
  • 2016年01月28日 15:37
  • 2549

java 如何实现多线程

java中多线程的实现方式有两种,一种是继承java.lang.Thread类,另一种是实现java.lang.Runnable接口。下面是两种方式的简单代码。继承Thread类方式:import j...
  • caixiexin
  • caixiexin
  • 2011年07月13日 15:21
  • 14578

Java中两种多线程实现方式的区别

在程序开发中用到多线程,正统的方法是使用Runnable接口,相比继承Thread类,Runnable接口有以下两点好处: 1、避免单继承机制的局限,一个类可以实现多个接口 2、适用于资源的共享 下面...
  • june_ruikang
  • june_ruikang
  • 2016年02月26日 21:00
  • 656

Java单线程和多线程详解

单线程 package com; public class SingletonThread { public static void main(String[] args) { // TO...
  • moxiaoya1314
  • moxiaoya1314
  • 2016年07月31日 13:06
  • 2786

多线程——Java多线程实现的三种方式

实现多线程的几种方式,建议使用runable实现,不管如何最终都需要thread.start( )来启动线程。...
  • xdd19910505
  • xdd19910505
  • 2016年03月22日 20:30
  • 2206

一、Java多线程和高并发

Java线程的基本感念以简单实现
  • SoulFeeling
  • SoulFeeling
  • 2017年05月15日 11:35
  • 2804

Java网络编程Demo(一)多线程的TCP网络程序

多线程的TCP网络程序
  • yuan13826915718
  • yuan13826915718
  • 2016年08月11日 16:51
  • 523

Java多线程的四种实现方式

 Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorSer...
  • a724888
  • a724888
  • 2017年04月10日 21:53
  • 1004

java多线程爬虫实现

先上做的结果吧:     [java] view plain copy print? 开始爬虫....................................
  • zhangtian6691844
  • zhangtian6691844
  • 2016年06月16日 09:19
  • 9445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:杰神之Java多线程基础概念和实现多线程
举报原因:
原因补充:

(最多只允许输入30个字)