java Thread 多线程

hou95256952

hou95256952

2016-02-19 10:13

下面请跟着图老师小编一起来了解下java Thread 多线程,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
Thread 创建线程的两种方法:

1、定义类继承Thread类,覆写类中的run方法,调用类对象的start方法,start方法启动线程,调用run方法。Thread类用于描述线程;该类定义一个功能run,用于存储线程要运行的代码。

2、定义类实现Runnable接口,覆盖Runnable接口中的方法,通过Thread类建立线程对象,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数,调用Thread类的start方法开启线程,线程会调用Runnable接口子类中的run方法;

实现接口Runnable的方式避免了单继承带来的局限性;

Thread T;

T.setMaemon(true);//设置线程为后台线程;当所有前台线程结束后后台线程自动结束;

T.notify();//唤醒本线程;

T.notifyAll();//唤醒全部线程;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

T.interrupt();//中断线程;

Thread.sleep(100);//暂停线程100毫秒

synchronized:默认锁定的是本身,也可以锁定自定义的对象;

必须要有两个及以上的线程执行,多个线程使用同一个锁,必须保证同步过程中只能有一个线程在运行;

判断同步: 明确哪些代码是需要多线程运行的代码,明确共享数据,明确多线程运行代码中哪些语句是操作共享数据;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

class Tickets implements Runnable
{
 private int tick = 100;
 public void run() { // public synchronized void run()
  while (tick 0) {
   synchronized (this) {
    if (tick 0) {
     try {
      Thread.sleep(100);
     } catch (InterruptedException e) {
      e.printStackTrace();
     }
     System.out.println(this.toString() + "sale:" + tick--);
    }
   }
  }
 }

如上:tick就是共享数据,操作tick就需要在synchronized中进行操作,synchroized锁定的就是Tickets本身;

等待唤醒机制: 在操作同步线程时,都必须要标识它们所操作线程所持有的锁,只有同一个锁上的被等待线程,才可以被同一个锁上的notify唤醒,不可以对不同锁中的线程进行了唤醒;(也即:等待和唤醒必须是同一个锁)

展开更多 50%)
分享

猜你喜欢

java Thread 多线程

编程语言 网络编程
java Thread 多线程

关于Java多线程

编程语言 网络编程
关于Java多线程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Java 多线程编程

编程语言 网络编程
Java 多线程编程

JAVA 的多线程浅析

编程语言 网络编程
JAVA 的多线程浅析

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

java多线程学习初步

编程语言 网络编程
java多线程学习初步

Java多线程编程精要

Java JAVA基础
Java多线程编程精要

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

xcopy如何把本地文件复制到远程服务器

xcopy如何把本地文件复制到远程服务器

怎么查询黄钻到期时间?

怎么查询黄钻到期时间?
下拉加载更多内容 ↓