为你推荐

jQuery实现回车绑定Tab事件、jQuery.extend方法、jQuery.fn.extend方法

  有时候我们希望回车事件绑定的是键盘的Tab事件。我的第一思路就是切换事件的keyCode,比如键盘事件按下的keyCode如果是13,我们将keyCode改为9。但是在实际编程中却未能实现此效果。于是只能自己通过手写JS脚本来调用input元素的focus()事件。 1.原来的一个普通的表单<for...

通过管道进行线程间通信

  在Java语言中提供了各种各样的输入/输出流Stream,使我们能够方便地对数据进行操作,其中管道流(pipeStream)是一种特殊的流,用于在不同线程间直接传送数据。一个发送数据到输出管道,另一个线程从输入管道中读数据。通过使用管道,实现不同线程间的通信,而无需借助于临时文件之类的动西。  在Java的JDK中...

生产者/消费者模式实现

  wait/notify最经典的案例就是"生产者/消费者"模式。但是此模式有一些需要注意的地方。  生产者-消费者也有多种实现方式。    (1)常见的就是synchronized结合wait+notify实现    (2)用Lock类实现    (3)使用BlockingQueue阻塞队列实现1.一个简单的生产者消...

wait/notify实现线程间的通信

  使线程之间进行通信之后,系统间的交互性更加强大,在大大提高CPU利用率的同时还会使程序对各线程任务在处理的过程中进行有效的把控与监督。1.不使用wait/notify实现线程间通信    使用sleep()+while(true)也可以实现线程间通信。例如:两个线程,一个线程向集合中添加元素,当...

匿名内部类可以访问的变量---静态成员变量和final修饰的局部变量

  在学习多线程的时候用到了匿名内部类,匿名内部类可以访问static静态成员变量或者final修饰的局部变量。  匿名内部类在编译之后会生成class文件,比如Test内的第一个匿名内部类编译之后就是Test$1.class;  匿名内部类中访问的final修饰的局部变量在生成Test$1.class之后会作为构造方...

volatile关键字的使用

  关键字volatile关键字的作用是使变量在多个线程间可见。也就是volatile只能保证可见性,不能保证原子性。所以volatile不具备同步性。1.一个死循环问题    如果不是在多继承的情况下,使用继承Thread类和实现Runnable接口在取得程序运行的结果上并没有什么太大的区别。如果...
代码星球·2020-08-27

对象及变量的并发访问(同步方法、同步代码块、对class进行加锁、线程死锁)&内部类的基本用法

  主要学习多线程的并发访问,也就是使得线程安全。  同步的单词为synchronized,异步的单词为asynchronized  同步主要就是通过锁的方式实现,一种就是隐式锁,另一种是显示锁Lock,本节主要研究隐式锁synchronized的使用。  每个Java对象都可以用作一个实现同步的锁,注意前提是Java...

线程的停止与暂停

    停止线程不像停止一个循环break一样干脆。  停止一个线程意味着在线程处理完任务之前停掉正在做的操作,也就是放弃当前的操作。虽然看起来简单,但是必须做好正确的防范措施,以便达到预期的效果。停止一个线程可以用Thread.stop(),但最好不要用它。虽然它确实可以停止一个正在运行的线程,但是这个方法是不安全的...
代码星球·2020-08-27

线程类的常见方法介绍

  线程类有好多方法,下面介绍一些常用的方法。1.start()实例方法    启动一个线程用的是thread.start()方法,如果直接调用run方法是同步调用,相当于一个普通的方法调用。  start()方法使线程开始执行,JVM会自动调用线程的run方法。new出来线程,调用start()方法即处于RUNNAB...
代码星球·2020-08-27

线程的基本概念以及线程的创建方式

    在接下来的一段时间内会学习多线程相关知识,文章的主要内容是参考<<Java多线程编程核心技术>>,作者高洪岩。    所有代码中都用到了slf4j日志,主要代替System.out.print功能,而且所有的代码最后整理放在git,git地址:https://github.com/qia...

图片转换base64编码,点击div的时候选择文件

有时候我们希望文件上传的时候预览图片,下面插件可以实现上传前预览图片(也可以提取文件的base64编码)max-height:140px;max-width:120px;可以指定图片的最大宽度和高度<!doctypehtml><html><head><metacharset="...

虚拟机性能监控与故障处理工具(深入理解java虚拟机三)

  JDK自带的工具可以方便的帮助我们处理一些问题,包括查看JVM参数,分析内存变化,查看内存区域,查看线程等信息。  我们熟悉的有java.exe,javac.exe,javap.exe(偶尔用),jps.exe,jmap.exe....等,下面会详细介绍。分别在linux和windows下面介绍。windows与l...

mybatis-plus调用自身的 selectById 方法报错:org.apache.ibatis.binding.BindingException:

  mybatis-plus的版本号是 2.0.1,在调用自身的insert(T)的时候没有报错,但是执行update报错,调用selectById、deleteById的时候也报错。也就是涉及到需要主键识别的都报错。语句如下:(接口与实现都是MP自己实现的)UserselectById=userMapper...

数组转集合、集合转数组、字符串数组与int型、long型数组等的转换以及排序问题

==================类型转换==================  在项目中经常会遇到数组转集合、集合转数组、数组之间类型转换等操作 1.数组转集合为了实现把一个数组转换成一个ArrayList,很多Java程序员会使用如下的代码:Stringstr[]={"1","2","3"};List&...

MyBatis-Plus的简单使用

  mybatis-plus也只是听过,可是终究没有使用过。于是自己花几天晚上的时间研究mybatis-plus的使用。  下面的研究也是基于其官网:http://mp.baomidou.com/guide/ 。官网的介绍非常详细。  官网有基于springboot,也有基于spring的原始方式。  MyB...
代码星球·2020-08-27