加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

如何管理内存的?

发布时间:2021-02-18 13:33:14 所属栏目:外闻 来源:互联网
导读:用stop会强行终止线程,导致线程所持有的全部锁突然释放(不可控制),而被锁突同步的逻辑遭到破坏。不建议使用 interrupt函数中断线程,但它不一定会让线程退出的。它比stop函数优雅,可控制 当线程处于调用sleep、wait的阻塞状态时,会抛出InterruptedExcept
  • 用stop会强行终止线程,导致线程所持有的全部锁突然释放(不可控制),而被锁突同步的逻辑遭到破坏。不建议使用
  • interrupt函数中断线程,但它不一定会让线程退出的。它比stop函数优雅,可控制
    • 当线程处于调用sleep、wait的阻塞状态时,会抛出InterruptedException,代码内部捕获,然后结束线程
    • 线程处于非阻塞状态,则需要程序自己调用interrupted()判断,再决定是否退出
  • 其他常用方法

  • ew(新建状态):用new关键字创建线程之后,该线程处于新建状态,此时仅由JVM为其分配内存,并初始化其成员变量
  • Runnable(就绪状态):当调用Thread.start方法后,该线程处于就绪状态。JVM会为其分配虚拟机栈等,然后等待系统调度
  • running(运行状态):处于就绪状态的线程获得CPU,执行run方法时,则线程处于运行状态
  • Terminated(线程死亡):线程正常run结束、或抛出一个未捕获的Throwable、调用Thread.stop来结束该线程,都会导致线程的死亡

3 JAVA线程的几种常用方法

「线程启动函数」

 

  • java的线程是基于操作系统原生的线程模型(非用户态),通过系统调用,将程序的线程交给系统调度执行
  • java线程拥有属于自己的虚拟机栈,当JVM将栈、程序计数器、工作内存等准备好后,会分配一个系统原生线程来执行。Java线程结束,原生线程随之被回收
  • 原生线程初始化完毕,会调Java线程的run方法。当JAVA线程结束时,则释放原生线程和Java线程的所有资源
  • java方法的执行对应虚拟机栈的一个栈帧,用于存储局部变量、操作数栈、动态链接、方法出口等

2 JAVA线程的生命周期

 

关联远程仓库

常规的操作都是在远程服务器上面已经有了一个仓库,我们通过git clone url 拉取相关代码,但是有时候会是我们在本地创建了一个文件夹,并且初始化成为 git 仓库了,这个时候需要推送到远程服务器上面,这种情况我们现在远程服务器上创建仓库,然后使用命令git remote add origin git@server-name:path/repo-name.git 推送到服务器上即可。

其他常用 git 命令

  • git branch: 查看分支列表;
  • git push origin master: 推送代码到远程服务器;
  • git checkout -b brandName或者新版本 git git switch -c brandName 创建并切换到新分支;
  • git merge branchName : 合并某分支代码到当前分支;
  • git log: 查看提交记录;

总结

Git 作为代码版本管理工具已经成为主流了,全球最大的同性网站 GitHub 也是根据 Git 而来的,这么好的一个工具强烈推荐大家都进行使用,对于一些还是使用 svn,csv 的伙伴真的需要换一下了。Git 的出现其实是一个偶然,官网有它的介绍,喜欢的朋友可以去看看,廖雪峰老师写过一个 Git 的教程,很不错,阿粉的这些骚操作也是在廖老师的网站上看到的,大家可以去深入学习一下。



(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读