进程:一个正在执行的程序,每一个进程都有一个执行顺序,该
顺序是一个执行路径,或者叫一个控制单元。
线程:进程中一个独立的控制单元。线程控制着进程的执行。
一个进程中至少有一个线程。

java VM中至少有一个线程负责java程序的执行。
而且这个线程运行的代码存在于main方法中。该线程为主线程。

扩展,jvm启动了两个线程,一个主线程,一个垃圾回收机制的线程。

1.怎样创建一个多线程?
第一种方法:通过继承Thread类的方法
1.继承Thread类
2.重写Thread类的run()方法
目的:将自定义的代码存储在run()方法中,让线程运行。
3.调用线程的start()方法。
(了解:多核编程,单核cpu的时候多线程的切换由线程控制,多核cpu下
则每个cpu可以同时处理多线程,单个cpu在同一时间只能执行一个线程,
多核下内存是瓶颈)

多线程具有随机性:
因为多线程都获取cpu的执行权。cpu执行到谁,谁就执行。明确一点,在某一时刻
只能有一个程序在运行。(多核除外),cpu在做着快速的切换,以达到看上去是同
事运行的效果。至于每个线程执行多久,cpu说了算,(其实我们可以控制执行时间爱你)
为什么要覆盖run()方法?
Thread类用于描述线程。该类定义了一个功能,用于存储线程要运行的代码。该存储功能就是run方法。
也就是说Thread类中的run()方法用于存储线程要运行的代码。

//实例:
class Demo extends Thread
{
public void run(){
for(int x=0;x<200;x++){
System.out.println("run--------------"+x);
} } } class ThreadDemo
{
public static void main(String[] args)
{
Demo d=new Demo();//创建好了一个线程 /*
d.start()和d.run()的区别?
*/
d.start();//开启线程并执行该线程的run()方法。运行线程是随机的
//d.run();//仅仅是对象调用方法。线程创建了,却并没有运行。运行的结果每次都是一样的。 for(int x=0;x<200;x++){
System.out.println("HelloWold----------"+x);
}
}
}

java用Thread方式创建多线程的更多相关文章

  1. Java基础 继承的方式创建多线程 / 线程模拟模拟火车站开启三个窗口售票

    继承的方式创建多线程 笔记: /**继承的方式创建多线程 * 线程的创建方法: * 1.创建一个继承于Thread 的子类 * 2.重写Thread类的run()方法 ,方法内实现此子线程 要完成的功 ...

  2. Java分享笔记:创建多线程 & 线程同步机制

    [1] 创建多线程的两种方式 1.1 通过继承Thread类创建多线程 1.定义Thread类的子类,重写run()方法,在run()方法体中编写子线程要执行的功能. 2.创建子线程的实例对象,相当于 ...

  3. java 线程Thread 技术--创建线程的方式

    在第一节中,对线程的创建我们通过看文档,得知线程的创建有两种方式进行实现,我们进行第一种方式的创建,通过继承Thread 类 ,并且重写它的run 方法,就可以进行线程的创建,所有的程序执行都放在了r ...

  4. 创建多线程的方式:继承Thread类和实现Runnable接口

    1.通过继承Thread类的方式创建多线程(这里只是简单的代码演示创建多线程的方法) package com.baozi.exer; public class ThreadDemo { public ...

  5. java创建多线程的三种方式

    /***************************继承Thread类创建多线程************************/ public class FirstThread extends ...

  6. java创建多线程(转载)

    转载自:Java创建线程的两个方法 Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对 ...

  7. 多线程01.newThread的方式创建线程

    1.java应用程序的main函数是一个线程,是被jvm启动的时候调用,线程的名字叫main 2.实现一个线程,必须创建一个thread实例,override run方法,并且调用start方法. 3 ...

  8. Java 线程--继承java.lang.Thread类实现线程

    现实生活中的很多事情是同时进行的,Java中为了模拟这种状态,引入了线程机制.先来看线程的基本概念. 线程是指进程中的一个执行场景,也就是执行流程,进程和线程的区别: 1.每个进程是一个应用程序,都有 ...

  9. Java OOP——第七章 多线程

    1.进程:是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间): Eg:用户点击桌面的IE浏览器,就启动了一个进程,操作系统就会为该进程分配独立的地址空间.当用户再次点击左面的IE浏览器, ...

随机推荐

  1. Dubbo(3)Dubbo admin管理控制台

    dubbo-admin管理控制台: 可以管理服务,消费,以及其他配置: 在dubbo项目的zip包中有个demo-admin项目,可以打成war包,发布到tomcat运行里面: 我这里将dubbo-a ...

  2. 学习笔记之Python Crash Course

    Python Crash Course https://www.safaribooksonline.com/library/view/python-crash-course/9781457197185 ...

  3. python输出缓冲区的问题

    碰到的问题,一段代码,print在前,log的在后,查看日志中log的反而在前面.是python输出缓冲区的问题. python输出缓冲区要满 4k 才写入文件,除非禁用缓存或者强制输出或者程序结束. ...

  4. The type android.support.v4.view.ScrollingView cannot be resolved. It is indirectly referenced from

    前几天另一个项目使用RecyclerView控件,引用类库然后继承一切都很顺序 详细:http://www.cnblogs.com/freexiaoyu/p/5022602.html 今天打算将另一个 ...

  5. 解决sql中上下左右backspace不能用的方法

    一. 解决输入 BACKSPACE 键变成 ^h 的问题 #su - oracle $stty erase ^h. 要永久生效,可以加入到用户环境配置文件 .bash_profile 中 , 加入如下 ...

  6. C#存储过程中传入传出参数

    作者:卞功鑫  ,转载请保留http://www.cnblogs.com/BinBinGo/p/6399847.html //1 连接字符串 string connectionString = &qu ...

  7. 第10课 std::bind和std::function(1)_可调用对象

    1. 几种可调用对象(Callable Objects) (1)普通函数指针或类成员的函数指针 (2)具有operator()成员函数的类对象(仿函数).如c++11中的std::function类模 ...

  8. 基于HAProxy+Keepalived高可用负载均衡web服务的搭建

    一 原理简介 1.HAProxyHAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web ...

  9. Mysql 64位解压版的安装

    先下载解压版的mysql 下载地址 https://dev.mysql.com/downloads/file/?id=474496 解压 进到里面新建这个文件夹和文件 打开my.ini文件(用文本编辑 ...

  10. flask-日料网站搭建-ajax传值+返回json字符串

    引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互,今天教大家实现ajax操作,返回json. 本节知识:jquery,json,ajax pyth ...