1、概述

      1.1  Java中使用Thread类表示线程;

           所有的线程对象必须是Thread类 或 其子类的实例;

           每条线程的作用:完成一定的任务;

           Java中使用run方法来封装线程执行体;  

      1.2  默认情况下,主线程的名字是main;

                创建的多条线程的名字是:Thread-0、Thread-1、Thread-2...;

      1.3  创建、启动线程

            1.3.1  继承Thread类

                  创建继承Thread类子类--->重写run方法--->创建子类实例--->子类实例调用start方法启动线程

                      Thread.currentThread()  返回当前线程对象

                      getName()    返回当前线程的名字

                      setName()    给当前线程设置名字

                  存在的问题

                  多个线程之间无法共享变量;

package com.an;

public class MyThread extends Thread{

    private int i;

    @Override
public void run() {
for (;i<20;i++){
System.out.println(Thread.currentThread().getName()+i);
}
} public static void main(String[] args){
for (int i=0;i<30;i++){
System.out.println(Thread.currentThread().getName()+i);
if (i==15){
Thread thread=new MyThread();
thread.setName("test-one");
thread.start();
Thread thread2=new MyThread();
thread2.setName("test-two");
thread2.start();
}
}
}
}

           1.3.2  实现Runnable接口

                  创建实现Runnable接口的实现类--->重写run方法--->以实现类的实例为target,创建Thread的实例,Thread类的实例才是真正的线程对象--->Thread实例调用start方法

                  多线程之间可以共享同一个target

package com.an;

public class ThreadTarget implements Runnable {
//多线程共享资源i
private int i;
public void run() {
for (;i<20;i++){
System.out.println(Thread.currentThread().getName()+"="+i);
}
} public static void main(String[] args){
for (int i=0;i<30;i++){
System.out.println(Thread.currentThread().getName()+"="+i);
if (i==15){
ThreadTarget threadTarget=new ThreadTarget();
new Thread(threadTarget,"test-one").start();
new Thread(threadTarget,"test-two").start();
}
}
}
}

  

  

JavaSE---多线程---线程的创建、启动的更多相关文章

  1. Java多线程——线程的创建方式

    Java多线程——线程的创建方式 摘要:本文主要学习了线程的创建方式,线程的常用属性和方法,以及线程的几个基本状态. 部分内容来自以下博客: https://www.cnblogs.com/dolph ...

  2. Java基础-多线程-①线程的创建和启动

    简单阐释进程和线程 对于进程最直观的感受应该就是“windows任务管理器”中的进程管理: (计算机原理课上的记忆已经快要模糊了,简单理解一下):一个进程就是一个“执行中的程序”,是程序在计算机上的一 ...

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

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

  4. java多线程-概念&创建启动&中断&守护线程&优先级&线程状态(多线程编程之一)

    今天开始就来总结一下Java多线程的基础知识点,下面是本篇的主要内容(大部分知识点参考java核心技术卷1): 1.什么是线程以及多线程与进程的区别 2.多线程的创建与启动 3.中断线程和守护线程以及 ...

  5. Java多线程之线程的创建

    好久没有更博客了,最近一直在忙工作的事情.现在终于空下来了,这2天会抓紧时间整理多线程和socket,把JavaSE结束掉. 关于多线程,首先会涉及到哪些东西呢?首先要了解线程,为什么要使用线程,线程 ...

  6. Java线程:创建与启动

    Java线程:创建与启动 一.定义线程   1.扩展java.lang.Thread类.   此类中有个run()方法,应该注意其用法: public void run() 如果该线程是使用独立的 R ...

  7. [Java多线程]-线程池的基本使用和部分源码解析(创建,执行原理)

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 多线 ...

  8. Java多线程系列 基础篇02 线程的创建和运行

    1.线程创建的方式常用有两种 1. 继承 Thread 类创建线程 2. 实现 Runnable 接口创建线程 2.Thread 和 Runnable的区别 Thread和Runnable的相同点:都 ...

  9. C/C++ Muti-Thread多线程编程学习(之)线程Thread | 创建、运行、结束

    文章目录 前言 线程 Thread 创建线程 CreateThread _beginthread _beginthreadex pthread_create 线程运行 结束线程 前言   多线程(Mu ...

  10. Java多线程并发01——线程的创建与终止,你会几种方式

    本文开始将开始介绍 Java 多线程与并发相关的知识,多谢各位一直以来的关注与支持.关注我的公众号「Java面典」了解更多 Java 相关知识点. 线程的创建方式 在 Java 中,用户常用的主动创建 ...

随机推荐

  1. 使用Navicat for Oracle新建表空间、用户及权限赋予

      Navicat for Oracle是有关Oracle数据库的客户端工具.通过这个客户端,我们可以图形方式对Oracle数据库进行操作. 说 明我们此次试验的Oracle数据库版本是Oracle  ...

  2. gensim Load embeddings

    gensim package from gensim.models.keyedvectors import KeyedVectors twitter_embedding_path = 'twitter ...

  3. 英语单词Repository

    Repository 来源——查看仓库的名称内容 [root@centos7 ~]# yum repolist Loaded plugins: fastestmirror Repository bas ...

  4. CNN笔记:通俗理解卷积神经网络

    CNN笔记:通俗理解卷积神经网络 2016年07月02日 22:14:50 v_JULY_v 阅读数 250368更多 分类专栏: 30.Machine L & Deep Learning 机 ...

  5. 540D - Bad Luck Island(概率DP)

    原题链接:http://codeforces.com/problemset/problem/540/D 题意:给你石头.剪刀.布的数量,它们之间的石头能干掉剪刀,剪刀能干掉布,布能干掉石头,问最后石头 ...

  6. Python读取文件时出现UnicodeDecodeError 'gbk' codec can't decode byte 0x80 in position x

    Python在读取文件时 with open('article.txt') as f: # 打开新的文本 text_new = f.read() # 读取文本数据出现错误: UnicodeDecode ...

  7. Unity Shader之模板测试

    Unity Shader之模板测试 一沙一世界,一花一天堂 一.Stencil testing 渲染管线     当片段着色器处理完一个片段之后,模板测试(Stencil Test)会开始执行,和深度 ...

  8. 二次封装arcgis的timeslider

    arcgis的timeslider是对dojo slider二次封装,项目需要,所有Map用统一样式的slider,所以写了一个common的dojo class,统一调用生成slider,作为对ti ...

  9. Castle动态代理拦截

    比如现在有一个方法,进行积分奖励 PointAdd 在不改变原来方法的基础上,增加积分奖励的日志 using Castle.DynamicProxy; public class AuditTraceI ...

  10. About Intel® Processor Numbers

    http://www.intel.com/content/www/us/en/processors/processor-numbers.html About Intel® Processor Numb ...