ICode9

精准搜索请尝试: 精确搜索
  • elastic-job 分布式定时任务框架 在 SpringBoot 中如何使用2020-09-13 06:32:19

    第一篇需要实现一个最简单的需求:某个任务定时执行,多台机子只让其中一台机子执行任务   一、安装 分布式应用程序协调服务 zookeeper,安装步骤在链接里面    Linux(Centos7)下安装 zookeeper docker版 集群   二、在springboot项目中引入 elastic-job 依赖,我这里用的 springb

  • Ubuntu下C++ 项目编译报错无法解析不存在的文件2020-09-13 06:31:50

    从GitHub上克隆了一个项目下来想要调试运行代码。但是报错了。   所用是Ubuntu Linux系统,版本号:   Linux version 4.15.0-115-generic (buildd@lcy01-amd64-029) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)) #116~16.04.1-Ubuntu SMP Wed Aug 26 17:36:48

  • Java环境没配置好会出现问题2020-09-13 05:32:18

    Java环境没配置好会出现问题   2、可能是Java版本太低了,jdk1.6以上版本才行,具体的可以查看spoon.bat配置文件。   3、Java环境配置对了,但是启动不了spoon.bat,也就是双击spoon.bat后一闪就没了的问题(这也是我遇到的问题)   在网上查了很多资料,也试了很多的方法,都没能解决问题

  • 有创造力的人往往对自己的想法坚韧不拔2020-09-12 07:32:21

    冲突是创造性进程的重要组成部分。有创造力的人往往对自己的想法坚韧不拔。所以,当你把它们放在一个房间里,让他们为面向微服务的建筑设计一个单一的设计时,紧张关系肯定会加剧。事情就是这样的。但要振作起来!冲突是好事。 幸运的是,有了一种理性的方法,用我前面描述的三个问题来审查面

  • 使用cin,cout可以直接读写s对象,从第一个字符读起到第一个空白2020-09-12 07:32:02

    使用cin,cout可以直接读写s对象,从第一个字符读起到第一个空白(即只能读取一个“单词”),如果希望完整读取:   string str;   while(cin>>str){   //}   或者使用getline读取一整行(换行符未存进字符串对象):   string str;   while(getline(cin,str)){   //}   注意:str.

  • 一个Java程序其占用的CPU时长超过100%,排查后发现竟是Disruptor引起的2020-09-12 07:31:44

    现是我的一个Java游戏后台服务,有一个CPU几乎被占满,因此继续排查究竟是什么代码导致了这种情况。 用top -Hp 27538将这个进程的所有线程显示出来,按照CPU占用时间排序,看到了这个结果: ![]27658线程占用了近乎所有的CPU时间,而且一直都是,因此查看这个进程的详细信息。 用jstack pid > p

  • wait()方法会释放CPU执行权和占有的锁2020-09-12 07:00:39

    当一条正在执行的线程请求某一资源失败时,就会进入阻塞态。而在Java中,阻塞态专指请求锁失败时进入的状态。由一个阻塞队列存放所有阻塞态的线程。处于阻塞态的线程会不断请求资源,一旦请求成功,就会进入就绪队列,等待执行。PS:锁、IO、Socket等都资源。   等待态:   当前线程中调用w

  • wait和notify必须配套使用,即必须使用同一把锁调用2020-09-12 07:00:23

    sleep(long)方法仅释放CPU使用权,锁仍然占用;线程被放入超时等待队列,与yield相比,它会使线程较长时间得不到运行。   yield()方法仅释放CPU执行权,锁仍然占用,线程会被放入就绪队列,会在短时间内再次执行。   wait和notify必须配套使用,即必须使用同一把锁调用;   wait和notify必须

  • 到JDK1.5,java.util.concurrent.atomic包提供了int和long类型的原子包装类2020-09-12 05:00:43

    int++并不是一个原子操作,所以当一个线程读取它的值并加1时,另外一个线程有可能会读到之前的值,这就会引发错误。   为了解决这个问题,必须保证增加操作是原子的,在JDK1.5之前我们可以使用同步技术来做到这一点。到JDK1.5,java.util.concurrent.atomic包提供了int和long类型的原子包装

  • 什么是Executors框架?执行和控制的异步任务的框架?2020-09-12 05:00:29

    整体上来说Lock是synchronized的扩展版,Lock提供了无条件的、可轮询的、定时的、可中断的、可多条件队列的锁操作。另外Lock的实现类基本都支持非公平锁和公平锁,synchronized只支持非公平锁,当然,在大部分情况下,非公平锁是高效的选择。   11、什么是Executors框架?   Executor框架

  • 对于复杂的问题C++类的组合、前向引用声明2020-09-11 07:00:51

    对于复杂的问题,往往可以逐步划分为一系列稍微简单的子问题。   解决复杂问题的有效方法是将其层层分解为简单的问题组合,首先解决简单问题复杂问题也就迎刃而解了。   在面向对象的程序设计中,可以对复杂对象进行分解、抽象,把一个复杂对象分解为简单对象的组合,由比较容易理解和

  • 深入理解 Java 中的 final 关键字2020-09-11 06:32:23

    final 是Java 中重要关键字之一,可以应用于类、方法以及变量上。这篇文章中将讲解什么是 final 关键字?将变量、方法和类声明为 final 代表了什么?使用 final 的好处是什么?   final 关键字是什么?   final 在 Java 中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。

  • 对一个 final 变量的写入,与随后把这个被构造对象的引用赋值给一个变量2020-09-11 06:32:08

    对于 final 变量,编译器和处理器都要遵守两个重排序规则:   构造函数内,对一个 final 变量的写入,与随后把这个被构造对象的引用赋值给一个变量,这两个操作之间不可重排序   首次读一个包含 final 变量的对象,与随后首次读这个 final 变量,这两个操作之间不可以重排序   实际上这两

  • 参数是SelectionKey类中的一个命名常量,标识所注册的操作2020-09-11 06:31:36

    使用Selector,要先向Selector中注册Channel, 然后调用它的select()方法,这个方法会一直阻塞到某个注册的Channel中的事件准备就绪。一旦select()方法返回,线程就可以处理这些事件了,比如新的连接进入,数据接收等。   Selector类并没有注册新通道的方法,register()方法是在SelectableCha

  • Java中的NIO其实就是使用的多路I/O复用模型2020-09-11 06:01:47

    Java中的NIO其实就是使用的多路I/O复用模型,前面的文章已经介绍过原理了,但是在理解Java的NIO之前,还是先介绍几个Java NIO的基础概念:Channel(通道),Buffer(缓冲区),Selector(选择器)。   Channel(通道)   Channel可以理解为,互通的管道,和Java的IO中的各种Stream(InputStream、OutputStream

  • 在NIO中所有的数据操作都必须经过缓冲区2020-09-11 06:01:18

    Buffer是一个高效的数据容器,在NIO中所有的数据操作都必须经过缓冲区,这点是和BIO不同的,BIO是直接将数据写到Stream对象中的。因为Stream对象的设计是按顺序一个字节一个字节的传送数据。虽然出于性能考虑,也可以传递字节数组,但是基本概念都是一个字节一个字节的传递数据。通道与之不

  • 缓冲区可以保存的最大数目。容量值在创建缓冲区时设置,此后不能改变。2020-09-11 06:00:45

    缓冲区中将读取或写入的下一个位置。这个位置从0开始计,最大值等于缓冲区的大小。可以用下面两个方法获取和设置。   public final int position();   public final Buffer position(int newPosition);   容量(capacity)   缓冲区可以保存的最大数目。容量值在创建缓冲区时设

  • python列表中enumerate和zip函数用法2020-09-08 06:00:48

    解释:给数字加上年份;通过for循环,遍历出list1中的数据和序列号,同时对不是0的元素加上19,给是0的加上200;list1[index]就是列表元素的位置   zip:   定义:zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了

  • 深入浅说服务如何以Jar包的方式发布2020-09-08 06:00:38

    笔者前段时间在使用自研框架NF( 传送门 )开发一个自动模板生成工具之后,想将他发布到Linux下,之前一直使用IDE直接run as运行,在遇到发布的时候考虑过发布为war或者jar,在一番抉择之后最终选择了jar(原因是NF自带服务容器,而war为tomcat而生,所以jar更适合NF),所以特意研究了一番如何将普通

  • 使用Spring Boot提供的maven插件2020-09-08 06:00:24

    Spring Boot采用jar的方式发布,也就是说,我们可以使用Spring Boot提供的maven插件,通过mvn package 指令将服务打包成jar的形式发布,这就意味着服务中涉及的所有资源(class文件、依赖jar包、静态资源文件)都将会打包在一个jar包之内,在启动这个层次来讲就异常的简单了,只需要通过java -jar

  • Java集合之ArrayList源码分析2020-09-08 05:00:22

    Java集合之ArrayList源码分析   个人开发环境   java环境:Jdk1.8.0_60   编译器:IntelliJ IDEA 2017.1.4   源码连接:待整理   (个人附加了英文注释,以及为了更好阅读调整了一下,英文不好趁看源码机会冲冲电,理解不当望大佬们指出,仅供个人学习总结使用,如有侵权,联删!!!)   源码解

  • Spring 生态系统的简要概述2020-09-07 07:00:43

    坦率地说,在软件开发和框架中没有什么银弹,Java 当然也不例外。因此,应该根据上下文来选择哪个框架或不用框架。 在本文的最后,我们将更好地做出关于 Java 中的 Spring 的决策。 Spring 生态系统的简要概述 在我们开始对 Spring 框架进行定性评估之前,让我们仔细看看 Spring 生态系统

  • 客户端创建queue并绑定exchange呢?fanout模式就是大名鼎鼎2020-09-07 06:31:49

    本文主要验证fanout模式和direct模式下以上猜想是否可行。fanout模式就是大名鼎鼎的广播模式了,只要queue绑定了fanout的交换器,就可以直接的收到消息,无需routingkey的参与。而direct模式就是通过routing key直接发送到绑定了同样routing key的队列中。那么,在这两种exchange的模式下

  • Python之并发、并行、阻塞、非租塞、同步、异步、IO多路复用2020-09-07 05:31:55

    并发:表示执行多个任务的能力 并行:表示同一时刻执行多个任务 二、模拟socket发送http请求 三大步骤:创建连接 要发送的东西 然后数据回来接收 socket默认情况下阻塞 1 #!/usr/bin/env python 2 # -- coding:utf-8 -- 3 4 import socket 5 6 client = socket.socket() 7 client.se

  • 线程(thread)是操作系统能够进行运算调度的最小单位2020-09-07 05:31:43

    个人理解: 进程是可并发程序执行的时候的一个实例。从内核的观点看,进程的目的就是分配系统资源(CPU时间,内存等)和调度的基本单位 线程: 百度百科的定义: 线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有