zoukankan      html  css  js  c++  java
  • Java Tread多线程(0)一个简单的多线程实例

    作者 : 卿笃军

    原文地址:http://blog.csdn.net/qingdujun/article/details/39341887


    本文演示,一个简单的多线程实例,并简单分析一下线程。

    编程多线程时,一般步骤:

    1)继承Thread函数。

    2)覆盖run函数。


    注意:1)main函数为主线程,main里面存放的是主线程的运行代码;

    Demo1为子线程,里面的run函数里面存放的是子线程须要运行的代码;当中,本文中主线程和子线程运行的优先级是一样的。

    2)启动线程必须用start()启动,而不能直接调用run方法。

    差别:①start() :开启线程,并执行run方法;(start会调用底层开启线程,Java本身不会开启一个线程,start肯定是调用了Windows底层的什么开启了线程,这里执行环境是Windows)

    Demo1 demo1 = new Demo1();
    demo1.start();

    ②run():相当于直接函数调用(主线程运行的run内容),子线程创建了,但没有开启并运行;(run的功能,不过为了封装线程运行的代码)

    Demo1 demo1 = new Demo1();
    demo1.run();

    ③局部变量,在每一个线程其中都有独立的一份。

    Example: 一个简单的Demo例如以下:

    package thread.demo1.qdj;
    
    class Demo1 extends Thread
    {
    	public void run()
    	{
    		for (int x = 0; x < 50; ++x)
    			System.out.println("启动了线程Demo1");
    	}
    }
    
    public class CThreadDemo1 {
    
    	public static void main(String[] args) {
    		Demo1 demo1 = new Demo1();
    		demo1.start();
    		for (int x = 0; x < 50; ++x)
    			System.out.println("正在执行主线程");
    	}
    }
    
    执行结果显示:



    一些简单的说明:

    1)获得线程的名字:[注:currentThread()获取当前线程对象 ] ,下面两种写法是一样的。

    class Demo1 extends Thread
    {
    	public void run()
    	{
    		//System.out.println(this.getName());
    		System.out.println(Thread.currentThread().getName());
    	}
    }
    2)设置线程的名字
    ①编写构造函数

    class Demo1 extends Thread
    {
    	public Demo1(String name) {
    		//调用父类
    		super(name);
    	}
    	public void run()
    	{
    		//System.out.println(this.getName());
    		System.out.println(Thread.currentThread().getName());
    	}
    }
    ②创建线程时传參

    Demo1 demo1 = new Demo1("name1");

    參考文献:Java视频 毕向东 主讲

    原文地址:http://blog.csdn.net/qingdujun/article/details/39341887


  • 相关阅读:
    算法-动态规划 Dynamic Programming--从菜鸟到老鸟
    DTW动态时间规整
    安装splash
    安装 Tesserocr (填坑)
    pip3 install tesserocr安装失败(已解决)
    从头到尾彻底理解傅里叶变换算法
    ruby之——安装gem提示:Please update your PATH to include build tools or download the DevKit
    关于0x80000000为什么等于-2147483648和负数在内存上储存的问题
    html5 canvas
    html5 视频和音频
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4304321.html
Copyright © 2011-2022 走看看