学习总结 java线程

 1 package com.hanqi.xc;
 2
 3 public class Test1 {
 4
 5     public static void main(String[] args) {
 6
 7         // 线程测试
 8         for (int i = 0; i < 10; i++) {
 9             System.out.println("i = " + i);
10
11             // 通过线程类,控制线程
12             try {
13                 // 让主线程休眠100毫秒
14                 Thread.sleep(100);
15
16             } catch (InterruptedException e) {
17                 // TODO 自动生成的 catch 块
18                 e.printStackTrace();
19             }
20
21         }
22
23         Test2 t2 = new Test2();
24
25         // 单线程
26         // t2.test();
27
28         // 启动新线程
29
30         t2.start();
31
32         Test2 t3 = new Test2();
33
34         t3.start();
35
36         Test2 t4 = new Test2();
37
38         t4.start();
39
40         //启动接口方式的分线程
41
42         Thread th = new Thread(new Test3(),"接口线程4");
43
44         th.start();
45     }
46
47
48
49
50
51
52
53
54
55 }
package com.hanqi.xc;

//以继承的方式支持多线程
public class Test2 extends Thread
{

    //重写run方法

    @Override
    public void run ()
    {
        //调应需要并发执行的语句
        test();

    }

    // 测试方法
    public void test()
    {
        for (int i = 0; i < 10; i++)
        {
            System.out.println("i = " + i);

            // 通过线程类,控制线程
            try
            {
                // 让主线程休眠100毫秒
                Thread.sleep(100);

            } catch (InterruptedException e)
            {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }

        }

    }
package com.hanqi.xc;

public class Test3 implements Runnable {

    @Override
    public void run() {

        //需要分线程执行的代码

        for (int i = 0; i < 10; i++)
        {
            System.out.println("i = " + i);

            // 通过线程类,控制线程
            try
            {
                // 让主线程休眠100毫秒
                Thread.sleep(100);

            } catch (InterruptedException e)
            {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }

        }

    }

}

时间: 2024-11-08 02:05:31

学习总结 java线程的相关文章

Java学习之==&gt;Java线程生命周期与状态切换

一.Java线程生命周期与状态切换 这些状态的描述可以总结成下图: NEW 一个刚创建但尚未启动的Java线程实例就是处于 NEW 状态 public class App { public static void main(String[] args) { Thread thread = new Thread(); Thread.State state = thread.getState(); System.out.println(state); } } // 输出结果 NEW RUNNABLE

学习联系 java 线程

package com.hanqi.xc; import java.util.*; public class lianxi extends Thread { public void run() { chengshi(); } public void chengshi() { for(int i=1;i<=10;i++) { Random n=new Random(); int a= n.nextInt(2); if(a==0) { System.out.println(Thread.curren

Java线程学习经典例子-读写者演示

Java线程学习最经典的例子-读写者,主要用到Thread相关知识如下: -         线程的start与run -         线程的休眠(sleep) -         数据对象加锁(synchronized) -         数据对象的等待与释放(wait and notify) 程序实现: -ObjectData数据类对象,通过synchronized关键字实现加锁,在线程读写者中使用. -ConsumerThread消费者线程,读取数据对象中count值之后,通知生产者

Java 线程池学习

Reference: <创建Java线程池>[1],<Java线程:新特征-线程池>[2], <Java线程池学习>[3],<线程池ThreadPoolExecutor使用简介>[4],<Java5中的线程池实例讲解>[5],<ThreadPoolExecutor使用和思考>[6] [1]中博主自己通过ThreadGroup实现一个线程池(挺方便理解的),使用的是jdk1.4版本,Jdk1.5版本以上提供了现成的线程池. [2]中介绍

黑马程序与----java线程学习

线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元.一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成.另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源.一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行.由于线程之间的相互制约,致使线程在运行中呈现出间断性.线程也有就绪.阻塞和运

Java并发学习之七——守护线程

本文是学习网络上的文章时的总结,感谢大家无私的分享. 1.Java有两种Thread:"守护线程Daemon"与"用户线程User".用户线程:Java虚拟机在它所有非守护线程已经离开后自动离开:守护线程:则是用来服务用户线程的,如果没有其他用户线程在运行,那么就没有可服务对象,也就没有理由继续下去. 2.setDaemon(boolean on)方法可以方便的设置线程的Daemon模式,true为Daemon模式,此方法必须在线程启动之前调用,当线程正在运行时调用

java线程学习-Thread.currentTread().getName()和this.getName()的区别

很久没有写java程序了,由于为了改变目前的状况,打算花两天时间学习一下java的线程开发和高并发. 线程开发使用thread类,或者runnable接口,而且thread类也是实现了runnable接口的. 先来个小甜点作为开始,如下为创建多个线程,并且同时处理. package firstThreadStudy; public class MyThread extends Thread { public MyThread(){ System.out.println("MyThread cur

Java并发学习之四——操作线程的中断机制

本文是学习网络上的文章时的总结,感谢大家无私的分享. 1.如果线程实现的是由复杂算法分成的一些方法,或者他的方法有递归调用,那么我们可以用更好的机制来控制线程中断.为了这个Java提供了InterruptedException异常.当你检测到程序的中断并在run()方法内捕获,你可以抛这个异常. 2.InterruptedException异常是由一些与并发API相关的Java方法,如sleep()抛出的. 下面以程序解释 package chapter; import java.io.File

java线程池的学习

package advancedJava;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit; * java 线程池学习 * @author: cuiH * Date: 13-12-7public class ThreadPoolTest { * 线程池的概念 * jdk5提出了ThreadPool的概念 * 之