zoukankan      html  css  js  c++  java
  • 多线程的创建

    一、线程的概念:

    CPU时间片:CPU执行时间被划分成多个小片,把小片依次分配个等待执行的程序,通过这样的交替执行,实现多个线程的“同时运行”。

    进程:执行中的程序叫进程,拥有自己独立的地址空间和资源,进程间不能直接共享资源。是操作系统调度的最小单位。

    线程:同一个进程可以进一步分成更小的执行单位,叫线程,每个线程可以执行不同的任务。是CPU调度的最小单位,能够充分利用CPU资源。同一进程下的进程可以很容易的实现资源的共享。

    二、java线程的继承实现(继承Thread类,并覆盖Thread类中的run()方法,即可实现多线程。)

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package edu.jju;

    import java.util.logging.Level;
    import java.util.logging.Logger;

    /**
     *
     * @author syzx
     */
    public class TestThread01 {
        public static void main(String[] args) {
            GThread gThread1 = new GThread("ONE");
            GThread gThread2 = new GThread("TWO");
            gThread1.start();
            gThread2.start();
           
            System.out.println("程序执行完成!");
        }
    }

    class GThread extends Thread{
        String name;
        public GThread(){
            ;
        }
       
        public GThread(String name){
            this.name = name;
        }
        @Override
        public void run(){
            for(int i = 0; i < 10; i++){
                 System.out.println("线程" + name);
                try {
                    sleep(500);
                } catch (InterruptedException ex) {
                    Logger.getLogger(GThread.class.getName()).log(Level.SEVERE, null, ex);
                }
            }      
        }
    }


    三、java线程实现接口的实现(实现Runnable接口,实现接口中的run()方法,即可实现多线程。启动方式与上边的方法不太一样)

    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    package edu.jju;


    import static java.lang.Thread.sleep;
    import java.util.logging.Level;
    import java.util.logging.Logger;


    /**
     *
     * @author munication
     */
    public class TestThread01 {
        public static void main(String[] args) {
    GThread gThread1 = new GThread("ONE");
            GThread gThread2 = new GThread("TWO");
    Thread thread1 = new Thread(gThread1);
    Thread thread2 = new Thread(gThread2);
            
            thread1.start();
            thread2.start();
            
            System.out.println("程序执行完成!");
        }
    }
    class GThread implements Runnable{
        String name;
        public GThread(){
            ;
        }
        
        public GThread(String name){
            this.name = name;
        }
        @Override
        public void run(){
            for(int i = 0; i < 10; i++){
                 System.out.println("线程" + name);
                try {
                    sleep(500);
                } catch (InterruptedException ex) {
                    Logger.getLogger(GThread.class.getName()).log(Level.SEVERE, null, ex);
                }
            }       
        }
    }



  • 相关阅读:
    Linux下压缩文件和解压缩
    原生JS随机数
    Git问题-Git warning LF will be replaced by CRLF
    mysql进程占用cpu居高不下处理
    mysql修改查询的结果包含的敏感字
    mysql 全库备份和还原
    mysql创建用户并设置权限
    Mysql-开启 SSL加密 mysql_ssl_rsa_setup
    tp6_005控制器
    ERROR 1104 (42000): The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
  • 原文地址:https://www.cnblogs.com/guochaoxxl/p/6823165.html
Copyright © 2011-2022 走看看