java.lang.Thread使用及总结

 1 public class mainThread{
 2     public static void main(String args[]){
 3         //第一种方式启动线程
 4         otherThread ot=new otherThread();
 5         Thread t=new Thread(ot);
 6         t.start();
 7
 8         //第二种方式启动线程
 9         itemThread it=new itemThread();
10         it.start();
11
12         for(int i=0;i<100;i++){
13             System.out.println("Main Thread:------"+i);
14         }
15     }
16 }
17
18 class otherThread implements Runnable{//实现了Runnable接口,jdk就知道你是一个线程类
19     public void run(){
20         for(int i=0;i<100;i++){
21             System.out.println("other Thread:"+i);
22         }
23     }
24 }
25
26 class itemThread extends Thread{
27     public void run(){
28         for(int i=0;i<100;i++){
29             System.out.println("item Thread");
30         }
31     }
32 }

马士兵:线程是一个程序里面不同的执行路径。理解这个概念足够了
进程:只是一个静态的概念,机器上一个class文件,一个exe文件这个叫一个进程
实际上运行的都是线程,进程是静态的概念,进程不运行,说的进程运行是main进程运行
dos是只支持单进程的,同一个时间点只能有一个进程在执行

使用接口比较灵活,能使用接口的时候就尽量不要从Thread类继承

Run()方法结束,线程就结束

时间: 2024-10-24 11:11:08

java.lang.Thread使用及总结的相关文章

生产环境遇到的hashMap非线程安全问题java.lang.thread.waiting

写在前面:工作有几年了,从入门到现在,遇到也解决了一些问题.(当然,框架级别的暂时还没有)一直以来,都是从博客园以及其他各大社区搜罗出来的各种fix方法.目前稍有闲暇时间,在看过大V沈剑的博文后,我也鼓起勇气来书写博客,记录工作中遇到和解决的问题(其中当然也包括我在博园获取的各种解决方法:能找到原博文的小弟一定会注明出处.)因为总觉得自己水平不够,怕写出来的文章误导了别人.以下是这周生产环境遇到的一个问题,写出来供大家参考. 现象 周五一大早,车子都没停稳(电动车),群里就开始在询问谁最近的代码

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

现实生活中的很多事情是同时进行的,Java中为了模拟这种状态,引入了线程机制.先来看线程的基本概念. 线程是指进程中的一个执行场景,也就是执行流程,进程和线程的区别: 1.每个进程是一个应用程序,都有独立的内存空间. 2.同一个进程中的线程共享其进程中的内存和资源. (共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的栈内存) 我们还需要了解以下基本内容: 1.什么是进程? 一个进程对应一个应用程序.例如:在Windows操作系统启动word就表示启动了一个进程.在Java开发环境下

java.lang.Thread

package java.lang; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; import java.security.AccessController; import java.security.AccessControlContext; import java.security.PrivilegedAction; impor

.进程&amp;线程(&amp;java.lang.Thread)详解

一.进程与线程 进程 我们在进行操作电脑的时候,通常会打开浏览器,通讯工具等应用程序,这个时候CPU通过作业调度在内存中就会分配一些空间让它们处于宏观上的运行状态(处于可以被CPU执行的状态),而这部分空间资源就可以说是相应的进程占据的,很显然运行不同的程序需要不同的进程,在内存中也为它们分配独立,无共享的区域.静态描述进程的是PCB快(数据结构集),它是系统感知进程存在的唯一实体,通常包含进程名(或者标识符),用户名(或者用户标识号),家族关系. 进程的状态 就绪态:进程获得了除cpu以外的其

java.lang.Thread.State类详解

public static enum Thread.Stateextends Enum<Thread.State>线程状态.线程可以处于下列状态之一: 1.NEW 至今尚未启动的线程的状态. 2.RUNNABLE 可运行线程的线程状态.处于可运行状态的某一线程正在 Java 虚拟机中运行,但它可能正在等待操作系统中的其他资源,比如处理器. 3.BLOCKED 受阻塞并且正在等待监视器锁的某一线程的线程状态.处于受阻塞状态的某一线程正在等待监视器锁,以便进入一个同步的块/方法,或者在调用 Obj

maven的坑: Exception in thread &quot;pool-1-thread-1&quot; java.lang.NoClassDefFoundError: org/eclipse/aether/spi/connector/Transfer$State

搭建ReboletricSample的环境: 搭建完成,执行的时候报错: Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/aether/spi/connector/Transfer$State at org.eclipse.aether.connector.wagon.WagonRepositoryConnector$GetTask.run(WagonRepositoryConnector.j

java.lang.OutOfMemoryError: unable to create new native thread(转)

解决 - java.lang.OutOfMemoryError: unable to create new native thread 工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. 一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题: 运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP, 1.5.0_22, myeclipse 6.6, 测试程序: Java代码 import

解决 - java.lang.OutOfMemoryError: unable to create new native thread (转载)

一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题: 运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse 3.4, 测试程序: Java代码 import java.util.concurrent.CountDownLatch; public class TestNativeOutOfMemoryError { public static void main(String[] args) { for

Caused by: java.lang.ClassNotFoundException: javax.persistence.Entity

1.错误描写叙述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help | start | stop } 2014-7-12 19:41:17 org.apache.catalina.core.AprLifecycleListener init 信息: Loaded APR based Apache Tomcat Native library 1.1.29 usi