多线程(二)~Thread类相关的API介绍
一、线程安全问题:
package com.multiThread.bean;
publicclassAservise{
privateString name;
publicvoid doBusiness(String name){
this.name = name;
System.out.println("大家好,我是"+this.name);
}
}
package com.multiThread.thread;
import com.multiThread.bean.Aservise;
publicclassUnSafeThreadimplementsRunnable{
privateAservise aServise;
privateString name;
publicUnSafeThread(Aservise aServise,String name){
this.aServise = aServise;
this.name = name;
}
@Override
publicvoid run(){
aServise.doBusiness(this.name);
}
}
package com.multiThread.test.common;
import com.multiThread.bean.Aservise;
import com.multiThread.thread.UnSafeThread;
publicclassUnSafeThreadTest{
publicstaticvoid main(String[] args){
Aservise aService =newAservise();
UnSafeThread unSafeThreadZhang =newUnSafeThread(aService,"张三");
UnSafeThread unSafeThreadLi =newUnSafeThread(aService,"李四");
Thread zhang =newThread(unSafeThreadZhang);
Thread li =newThread(unSafeThreadLi);
zhang.start();
li.start();
}
}
大家好,我是张三
大家好,我是李四
大家好,我是李四
大家好,我是李四
大家好,我是张三
大家好,我是李四
大家好,我是张三
大家好,我是张三
publicsynchronizedvoid doBusiness(String name){
this.name = name;
System.out.println("大家好,我是"+this.name);
- }
publicvoid doBusiness(String name){
synchronized(this){
this.name = name;
System.out.println("大家好,我是"+this.name);
}
}
publicvoid println(String x){
synchronized(this){
print(x);
newLine();
}
}
多线程(二)~Thread类相关的API介绍的更多相关文章
- (转)多线程——继承Thread 类和实现Runnable 接口的区别
java中我们想要实现多线程常用的有两种方法,继承Thread 类和实现Runnable 接口,有经验的程序员都会选择实现Runnable接口 ,其主要原因有以下两点: 首先,java只能单继承,因此 ...
- 多线程:Thread类的Join()方法
多线程:Thread类的Join()方法 http://blog.163.com/hc_ranxu/blog/static/3672318220095284513678/ 当我们在线程B中调用Thre ...
- 多线程学习笔记(四)---- Thread类的其他方法介绍
一.wait和 sleep的区别 wait可以指定时间也可以不指定时间,而sleep必须指定时间: 在同步中时,对cpu的执行权和锁的处理不同: wait:释放执行权,释放锁:释放锁是为了别人noti ...
- Java多线程01(Thread类、线程创建、线程池)
Java多线程(Thread类.线程创建.线程池) 第一章 多线程 1.1 多线程介绍 1.1.1 基本概念 进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于 ...
- 多线程之 Thread类
一.多线程第一种方式的实现步骤(继承Thread类) 代码演示: 1.定义MyThread类,继承Thread类 2.重写了里面的run方法,在run方法中定义线程要执行的任务 public clas ...
- Java中实现多线程继承Thread类与实现Runnable接口的区别
Java中线程的创建有两种方式: 1. 通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中 2. 通过实现Runnable接口,实例化Thread类 在实际应用中, ...
- Java 多线程之 Thread 类 和 Runnable 接口初步使用
目录 Thread 类 Thread之定义线程类 Thread之开启线程 Runnable 接口 Runnable 之定义线程类 Runnable 之开启线程 @ Thread 类 Thread 类是 ...
- 多线程——继承Thread类实现一个多线程
继承Thread类实现一个多线程 Thread类部分源码: package java.lang; //该类实现了Runnable接口 public class Thread implements Ru ...
- Java 多线程 (Thread 类)
1.多线程 2.卖票 1.多线程实现 两种方式可以实现多线程: 继承 Thread 类,重写 run 方法:定义对象,调用 start 方法 创建类实现 Runnable 接口,作为实参传递给 thr ...
随机推荐
- hexo 博客
梦飞扬~ 个人网站:Mauger`s Blog 博客园 标签 新随笔 随笔 管理 Github 随笔 - 61 文章 - 1 评论 - 0 使用Node.js+Hexo+Github搭建个人博客 ...
- php 实现无限极分类
原始数据 $array = array( array('id' => 1, 'pid' => 0, 'n' => '河北省'), array('id' => 2, 'pid' ...
- Linux 未安装vi如何编辑文件
sed -i "s/搜索内容/替换内容/g" 文件名
- c# 委托访问listbox多线程操作
c# 委托访问listbox多线程操作 using System;using System.Collections.Generic;using System.ComponentModel;using ...
- ZOJ Monthly, January 2019 I Little Sub and Isomorphism Sequences(set 妙用) ZOJ4089
写这篇博客来证明自己的愚蠢 ...Orz 飞机 题意:给定你个数组,以及一些单点修改,以及询问,每次询问需要求得,最长的字串长度,它在其他位置存在同构 题解:经过一些奇思妙想后 ,你可以发现问题是传 ...
- HDU - 6188
用vis表贪心异常方便 #include<bits/stdc++.h> #define rep(i,j,k) for(register int i=j;i<=k;i++) #defi ...
- java的Spring学习2- junit
1.maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...
- zookeeper 节点信息
使用get命令获取指定节点的数据时, 同时也将返回该节点的状态信息, 称为Stat. 其包含如下字段: czxid. 节点创建时的zxid. mzxid. 节点最新一次更新发生时的zxid. ctim ...
- IAR使用技巧 之 快捷键批量更换指定字符(以及Keil的全局替换功能)
使用IAR(或者Keil)写/移植程序时批量更换字符 作者:李剀 出处:https://www.cnblogs.com/kevin-nancy/p/10776712.html 或者 https://b ...
- 关于Json字符串"反序列化Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path..."
描述的很清楚就是说给它的不是一个对象,而是一个数组,所以他在建议你用JArray去解析,但是你明明就是给它的一个对象,并不是一个数组 这是我下意识的去把我的json字符串中的"[ ]&quo ...