- 博客(11)
- 收藏
- 关注
原创 JSON简介与解析
简介:JSON: JavaScript Object NotationJS对象简谱 , 是一种轻量级的数据交换格式.对象格式JSON: { "name":"乡村爱情", "info":"谢大脚和王大拿的爱情故事" } 一个对象, 由一个大括号表示. 括号中 描述对象的属性 . 通过键值对来描述对象的属性 (可以理解为, 大括号
2021-01-24 23:46:22
183
原创 XML简介
XML简介:可扩展标记语言(eXtensible Markup Language)。被设计用来传输和存储数据。XML 的设计宗旨是传输数据,而不是显示数据。XML 被设计为具有自我描述性。特性:xml具有平台无关性, 是一门独立的标记语言.xml具有自我描述性XML文件 :.XML文件是保存XML数据的一种方式XML数据也可以以其他的方式存在(如在内存中构建XML数据)。不要将XML语言狭隘的理解成XML文件。XML 用途:XML 把数据从 HTML 分离XML 简化数据共享
2021-01-24 22:51:20
297
原创 线程安全问题
我们先了解 Java 的内存模型,搞清楚线程的工作流程。Java 内存模型 - JMMJMM是一种基于计算机内存模型(定义了共享内存系统中多线程程序读写操作行为的规范),JMM作用于JVM和底层硬件之间,屏蔽了下游不同硬件模型带来的差异,为上游开发者提供了统一的使用接口,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。JMM是一个抽象的概念,并不是物理上的内存划分。Java内存模型(JMM)定义了Java虚拟机(JVM)在计算机内存(RAM)中的工作规范。在硬件内存模型中,各种
2021-01-20 15:37:24
99
原创 守护线程
用户线程:当一个进程不包含任何存活的用户线程时,进程结束。守护线程:守护用户线程,当最后一个用户线程结束时,所有守护线程自动死亡。public class Dome { public static void main(String[] args) throws InterruptedException { //创建一个名为T1的线程,传入MyRunnable任务 Thread T1 = new Thread(new MyRunnable());
2021-01-17 23:30:58
126
原创 线程的中断
stop被废弃原因:1.stop是通过立即抛出ThreadDeath异常,来达到停止线程的目的,此异常抛出有可能发生在任何一时间点,包括在catch、finally等语句块中,但是此异常并不会引起程序退出。2.由于有异常抛出,导致线程会释放全部所持有的锁,极可能引起线程安全问题。以上说明stop这种方式停止线程是不安全的。interrupt:interrupt是将线程中断状态标志为true,当线程运行中有调用其阻塞的方法如:Thread.sleep时,阻塞方法调用之后,会循环检测中断状态标志是否为
2021-01-17 23:13:45
106
1
原创 设置和获取线程名称
public class Dome { public static void main(String[] args) { //Thread.currentThread().getName() :获取当前运行的线程的名称 System.out.println(Thread.currentThread().getName()); new Thread(new MyRunnbale(),"线程名称").start(); new Thread(
2021-01-17 22:33:44
84
原创 Thread.sleep()概述
sleepThread.sleep()被用来暂停当前线程的执行,会通知线程调度器把当前线程在指定的时间周期内置为wait状态。当wait时间结束,线程状态重新变为Runnable并等待CPU的再次调度执行。所以线程sleep的实际时间取决于线程调度器,而这是由操作系统来完成的。一个进程在运行态时调用sleep(),进入等待态,睡眠结束以后,并不是直接回到运行态,而是进入就绪队列,要等到其他进程放弃时间片后才能重新进入运行态。所以sleep(1000),在1000ms以后,线程不一定会被唤醒。sleep(
2021-01-17 00:31:49
43584
原创 Thread类
构造函数Thread()分配新的 Thread 对象。Thread(Runnable target) 指定一个线程所要做的任务。Thread(Runnable target, String name) 指定一个线程所要做的任务,并起一个名字Thread(String name) 起一个名字 常用⬆Thread(ThreadGroup group, Runnable target) 分配新的 Thread 对象。Thread(ThreadGroup group, Run
2021-01-17 00:16:39
124
原创 过实现Runnable接口创建一个线程
通过实现 Runnable 接口来创建线程创建一个线程,最简单的方法是创建一个实现 Runnable 接口的类。为了实现 Runnable,一个类只需要执行一个方法调用 run(),声明如下:public void run()你可以重写该方法,重要的是理解的 run() 可以调用其他方法,使用其他类,并声明变量,就像主线程一样。在创建一个实现 Runnable 接口的类之后,你可以在类中实例化一个线程对象。Thread 定义了几个构造方法,下面的这个是我们经常使用的:Thread(Runna
2021-01-16 23:14:20
897
原创 通过继承Thread 类本身创建一个线程
Thread :简单理解为java用于实现线程的类。创建一个新的类,该类继承 Thread 类,然后创建一个该类的实例。继承类必须重写 run() 方法,该方法是新线程的入口点。它也必须调用 start() 方法才能执行。该方本质上也是实现了Runnable接口的一个实例。package com.java.demo;//子线程任务调用的方法都在子线程中运行//每个线程都拥有自己的栈空间,共用一份堆内存public class MyThread extends Thread{/***分支线程
2021-01-16 20:38:20
175
原创 多线程入门技术概述
多线程入门技术概述进程与线程「进程」进程是描述一个内存运行的应用程序,每个进程都有一个独立的内存空间。进程的本质是一个正在执行的程序,程序运行时系统会创建一个进程,并且「给每个进程分配独立的内存地址空间,用来保证每个进程地址不会相互干扰」。「线程」线程是进程中的一个执行路径,共享一个内存空间,线程之间可以自由切换,并发执行,一个进程最少有一个线程。线程实际上是在进程基础之上的进一步划分,一个进程启动之后,里面的若干个执行路径又可以划分成若干个线程。线程是CPU调度和分派的基本单位,进程中执行
2021-01-16 19:43:32
86
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人