关于JAVA线程池加锁的问题

ThreadPool t = ThreadPool.getThreadPool(3);
t.execute(new Runnable[]{new Task2(), new Task1(), new Task3()});

            调用线程池执行这三个工作线程 如何给这三个线程加锁让他们一个一个运行,3不能改哦

1个回答

你是3个线程运行一个任务还是3个线程运行各自的任务? 加判断boolean,根据情况允许你进行工作或者唤醒线程。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java线程池中为啥使用不可重入锁?
java线程池中为啥使用不可重入锁? ``` protected boolean tryAcquire(int unused) { if (compareAndSetState(0, 1)) { setExclusiveOwnerThread(Thread.currentThread()); return true; } return false; }**** ```
java线程的一些基本问题
我刚学Java,我想请问一下,线程与线程池,有什么不同? 为什么有时要让线程进入阻塞状态?线程锁一般用在什么地方,有什么作用?谢谢了
锁表后,线程池与连接池的问题
一直以来对连接池与线程池的运作不清楚。 我参与的一个项目中存在一种情况,有一个业务在应用中存在并发的修改一张表的某个统计数据,那么如果程序或者其他事务原因,造成该数据出现行锁。 我的问题是:在容器(websphere)设置的连接超时时间前,是否 所有操作该业务的请求都将等待并占用一个数据库连接池的资源和一个线程,随着请求的不段增加,从而造成服务器宕机,数据库连接池的资源耗尽! 因为现成出现了服务器宕机,并且日志显示超时了:SRVE0133E: java.net.SocketTimeoutException: Async operation timed out
关于Java的一些问题(貌似有点深)希望专业上的前辈能为菜鸟指点一二
1:junit 测试与main 方法的不同。这个问题出现在关于线程的代码中、main方法执行没有问题,用junit就会出错 比如不能调试线程锁等等 2:在Java 利用JDBC 链接数据库后调用close 方法是怎么释放内存资源占用的? 如果把创建的链接和池定义为静态让子类调用会不会更有效率?占用的内存资源会有多大?
java多线程之notify()的唤醒顺序
在网上看到的额都说notify()的唤醒顺序是随机的,可是自己做的一个实验显示并不是如此:package adad; public class MyThreadFactory { // 线程A是否处于等待状态的标志 private boolean isThreadAWaiting; // 线程B是否处于等待状态的标志 private boolean isThreadBWaiting; // 线程C是否处于等待状态的标志 private boolean isThreadCWaiting; public MyThreadFactory() { isThreadAWaiting = true; isThreadBWaiting = true; isThreadCWaiting = true; } /** * 对象锁 */ private final Object object = new Object(); /** * 该线程作为一个唤醒线程 */ public void startWakenThread() { Thread t = new Thread(new Runnable() { @Override public void run() { synchronized (object) { System.out.println("唤醒线程开始执行..."); // 首先释放线程A quitThreadA(); } } }); t.start(); } /** * 启动线程A */ public void startThreadA() { Thread t = new Thread(new Runnable() { @Override public void run() { synchronized (object) { System.out.println("线程A开始等待..."); try { for (; ; ) { if (!isThreadAWaiting) break; object.wait(); } } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程A结束..."); // 线程A结束后,暂停2秒释放线程B try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } quitThreadB(); } } }); t.start(); } /** * 启动线程B */ public void startThreadB() { Thread t = new Thread(new Runnable() { @Override public void run() { synchronized (object) { System.out.println("线程B开始等待..."); try { for (; ; ) { if (!isThreadBWaiting) break; object.wait(); } } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程B结束..."); // 线程B结束后,暂停2秒释放线程C try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } quitThreadC(); } } }); t.start(); } /** * 启动线程C */ public void startThreadC() { Thread t = new Thread(new Runnable() { @Override public void run() { synchronized (object) { System.out.println("线程C开始等待..."); try { for (; ; ) { if (!isThreadCWaiting) break; object.wait(); } } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("线程C结束..."); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("所有线程执行完毕!"); } } }); t.start(); } /** * 线程A退出等待 */ private void quitThreadA() { isThreadAWaiting = false; object.notify(); } /** * 线程B退出等待 */ private void quitThreadB() { isThreadBWaiting = false; object.notify(); } /** * 线程C退出等待 */ private void quitThreadC() { isThreadCWaiting = false; object.notify(); } public static void main(String[] args) { MyThreadFactory factory = new MyThreadFactory(); factory.startThreadB();//这儿的启动顺序注意 factory.startThreadA(); factory.startThreadC(); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } factory.startWakenThread(); } } 在网上找的这个例子,刚开始启动顺序是ABC,我改成BAC后运行程序多次都唤醒不了,这不正是说明唤醒跟其启动(启动的的时候会有个进入等待池也就是先进先出的顺序吗)
数据库连接单例和连接池效率区别在哪?
数据库连接问题。new一个数据库的连接对象是耗时耗资源的,因此不可能对每个请求都做一遍连接创建和关闭的操作,网上给的方法一般采用连接池。我的疑问就是,我如果采用单例模式, 这样的话,如果是多个线程请求数据库操作,那么直接调用静态getInstance方法(对此方法加锁),取得同一个数据库连接对象进行数据库操作,是不是可行的。我的理解是Connection在第一次实例化时,已经确定了它要连接时那个数据库,以后的操作也不会改变这些属性,因此不存在线程安全问题,而针对数据库本身的操作,数据应该也会提供一套同步机制,避免“脏数据”。这样的话,单例模式和池化相比,采用哪种方式更好?
oracle 11.2.0.4 账户被锁的问题
请教各位一个问题! 目前数据库(单机文件系统)11.2.0.3版本,web端使用连接池连接数据库用户user/password正常。 升级到oracle 11.2.0.4版本并打完建议的补丁集后,同样的客户端连接到11.2.0.4的用户user/password用户被锁,提示用户名密码错误。 我修改系统参数密码不区分大小写验证-无效 解锁账户后,设置错误密码无限制次数连接,这样我在oracle账户下使用sqlplus user/password登录卡住,无法登录。很久才能登录进去,或者提示tns异常问题。 请各位高手指点上述问题可能引起的原因。 web 日志 09-Jun-2017 18:12:02.244 WARNING [C3P0PooledConnectionPoolManager[identityToken->1hge3nw9o12xef2j1y0tsbn|30a044a7, dataSourceName->hibernate-datasource]-HelperThread-#0] com.mchange.v2.log.slf4j.Slf4jMLog$Slf4jMLogger$WarnLogger.log Having failed to acquire a resource, com.mchange.v2.resourcepool.BasicResourcePool@d0bcbac is interrupting all Threads waiting on a resource to check out. Will try again in response to new client requests. 09-Jun-2017 18:12:12.246 WARNING [C3P0PooledConnectionPoolManager[identityToken->1hge3nw9o12xef2j1y0tsbn|30a044a7, dataSourceName->hibernate-datasource]-HelperThread-#2] com.mchange.v2.log.slf4j.Slf4jMLog$Slf4jMLogger$WarnLogger.log com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@166de721 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (1). Last acquisition attempt exception: java.sql.SQLException: ORA-01017: invalid username/password; logon denied at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:388) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:381) at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:564) at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:431) at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186) at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:366) at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:752) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:359) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503) at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146) at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:195) at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184) at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200) at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086) at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073) at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44) at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696) 有人能指导下上述问题出在什么地方不? 我们搞java的好像也无多大办法了。 我自己用jdbc 开多线程连接并无异常,c3p0 开始启动的时候业务异常,但是启动一段时间后就报上述用户名和密码错误。
string.intern()如何实现查找并 添加字符串到常理池的 ?
[code="java"]public class CommonPoolTest2 { private static final String x="ccc"; public static String getX() { return x; } }[/code] [code="java"] public class CommonPoolTest { public static void main(String[] args) throws IOException { String strc = new String("ccc").intern(); CommonPoolTest2 cpt2= new CommonPoolTest2(); System.out.println(strc==cpt2.getX()); } }[/code] 结果是true 那就是说常量池是所有jvm中类共享的,那么当多个线程同时执行intern的时候,为了线程安全,是不是要锁住整个常量池,如果这样,当大量并发线程的情况下,会不会导致性能很低?还是采用的其他更灵活的方式呢,谢谢! [b]问题补充:[/b] [quote]该池的粒度比较粗,如果驻留的字符串过多倒是可能引发更多的hash冲突而使得池的性能降低。[/quote] 有什么办法能降低同步的开销吗,或者降低锁的粒度?
关于ThreadLocal解决哲学家就餐问题的疑问
众所周知,在java中有两种方法(或者以上)解决并发的临界资源问题 一种是通过加锁来实现的,即synchronized。 还有一种是ThreadLocal的方法来解决的 但是本人还是对后者有不理解的地方(或者说是什么情况下该用synchronized,什么情况下该用),特此来请教各路大神 同步采用了"以时间换空间的思想",而ThreadLocal采用"以空间换取时间的"思想 public class Chopsticks { String name; private static ThreadLocal<Boolean> enable=new ThreadLocal<Boolean>(){ public Boolean initialValue(){ return true; } }; //boolean Enable = true; public Chopsticks(String name) { this.name = name; } //synchronized public boolean pickup(){ if(this.enable.get()==false){ return false; } this.enable.set(false); return true; // try { // while(Enable==false) //筷子被用 // { // this.wait(); // } // this.Enable =false; //筷子没有被用 // } // catch (Exception e) // { // e.getMessage(); // } } public void putdown() { // this.Enable =true; // this.notifyAll(); this.enable.set(true); } } import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class zhexuejia extends Thread { String name; //属性 Chopsticks left; Chopsticks right; public zhexuejia(String name, Chopsticks l, Chopsticks r) { //初始化 this.name = name; left = l; right = r; } @Override public void run() { left.pickup(); System.out.println(name + " 眼明手快,一把抓起 "+left.name); right.pickup(); System.out.println(name + " 眼明手快,一把抓起 "+right.name); System.out.println(name + " 开始进餐"); try { Thread.sleep(500); } catch (InterruptedException e) { // TODO 自动生成 catch 块 e.printStackTrace(); } System.out.println(name + " 酒足饭饱,打了个饱嗝,心满意足的放下了 "+left.name+" 和 " +right.name); left.putdown(); right.putdown(); } public static void main(String []args) { Chopsticks k1 = new Chopsticks("1号"); Chopsticks k2 = new Chopsticks("2号"); Chopsticks k3 = new Chopsticks("3号"); Chopsticks k4 = new Chopsticks("4号"); Chopsticks k5 = new Chopsticks("5号"); zhexuejia z1=new zhexuejia("1",k5,k1); zhexuejia z2=new zhexuejia("2",k1,k2); zhexuejia z3=new zhexuejia("3",k2,k3); zhexuejia z4=new zhexuejia("4",k3,k4); zhexuejia z5=new zhexuejia("5",k4,k5); ExecutorService e= Executors.newFixedThreadPool(10); //将诸线程加入线程池,并发执行 e.execute(z5); e.execute(z2); e.execute(z3); e.execute(z4); e.execute(z1); } } 执行下来的结果与哲学家就餐的问题不符,问题还是在ThreadLocal的问题上 问题的根源就在于什么情况用锁机制,什么情况用ThreadLocal的机制 Spring中的源代码大量使用了ThreadLocal来保持同步,不知道这种同步和哲学家就餐有什么不同呢? 疑问
redis jedis jedispool 获取不到连接
每次都在第8次获取 jedis的时候 获取不到 ``` package com.ryx.sync.util; import java.util.concurrent.locks.ReentrantLock; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public final class JedisUtil { private static Logger logger = LoggerFactory.getLogger(JedisUtil.class); protected static ReentrantLock lockPool = new ReentrantLock(); protected static ReentrantLock lockJedis = new ReentrantLock(); //Redis服务器IP private static String ADDR = "127.0.0.1"; //Redis的端口号 private static int PORT = 6379; //访问密码 private static String AUTH = "beijing"; //可用连接实例的最大数目,默认值为8; //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。 private static int MAX_ACTIVE = 1024; //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。 private static int MAX_IDLE = 8; //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException; private static int MAX_WAIT = 10000; private static int TIMEOUT = 10000; //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的; private static boolean TEST_ON_BORROW = true; private static JedisPool jedisPool = null; /** * 初始化Redis连接池 */ private static void initialPool(){ try { JedisPoolConfig config = new JedisPoolConfig(); // config.setMaxTotal(MAX_ACTIVE); config.setMaxIdle(MAX_IDLE); config.setMaxWaitMillis(MAX_WAIT); config.setTestOnBorrow(TEST_ON_BORROW); jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT); } catch (Exception e) { logger.error("create JedisPool error : "+e); } } /** * 在多线程环境同步初始化 */ private static void poolInit() { //断言 ,当前锁是否已经锁住,如果锁住了,就啥也不干,没锁的话就执行下面步骤 assert ! lockPool.isHeldByCurrentThread(); lockPool.lock(); try { if (jedisPool == null) { initialPool(); } }catch(Exception e){ e.printStackTrace(); } finally { lockPool.unlock(); } } /** * 获取Jedis实例 * @return */ public static Jedis getJedis() { //断言 ,当前锁是否已经锁住,如果锁住了,就啥也不干,没锁的话就执行下面步骤 assert ! lockJedis.isHeldByCurrentThread(); lockJedis.lock(); if (jedisPool == null) { poolInit(); } Jedis jedis = null; try { if (jedisPool != null) { jedis = jedisPool.getResource(); } } catch (Exception e) { logger.error("Get jedis error : "+e); }finally{ lockJedis.unlock(); } return jedis; } /** * 释放jedis资源 * @param jedis */ public static void returnResource(final Jedis jedis) { if (jedis != null && jedisPool !=null) { jedisPool.returnResource(jedis); } } public static JedisPool getJedisPool(){ return jedisPool; } } public boolean jedisSave(List<SdTranData> sdTranDatas){ if (sdTranDatas.size() <= 0) { return false; } Jedis jedis = null; try { //从redis 删除边界 tranCode 解决重复问题 this.logger.logDebug("正在获取jedis连接。。。"); jedis = JedisUtil.getJedis(); System.out.println("active jedis:"+JedisUtil.getJedisPool().getNumActive()); this.logger.logDebug("获取jedis连接成功。。。"); String tranCode = sdTranDatas.get(0).getTranCode(); jedis.zremrangeByScore("sdTranLs".getBytes(), Double.parseDouble(tranCode), Double.parseDouble(tranCode)); for (SdTranData sdTranData : sdTranDatas) { jedis.zadd("sdTranLs".getBytes(), Double.parseDouble(sdTranData.getTranCode()), SerializeUtil.serialize(sdTranData)); } }catch (Exception e) { logger.logException("获取jedis连接出错:", e); }finally{ if(jedis != null){ JedisUtil.returnResource(jedis); } } return true; } ```
DruidDataSource 配置mysql,启动报错,求大神指点
地址信息: jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/order?characterEncoding=UTF-8 jdbc.username=root jdbc.password=123456 jdbc.initSize=5 jdbc.maxActive=10 jdbc.maxIdle=5 jdbc.minIdle=2 jdbc.maxWait=1000 <!-- 配置数据源 --> <bean id="dataSourceone" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <!-- 数据库基本信息配置 --> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- 初始化连接数量 --> <property name="initialSize" value="${jdbc.initSize}" /> <!-- 最大并发连接数 --> <property name="maxActive" value="${jdbc.maxActive}" /> <!-- 最大空闲连接数 --> <property name="maxIdle" value="${jdbc.maxIdle}" /> <!-- 最小空闲连接数 --> <property name="minIdle" value="${jdbc.minIdle}" /> <!-- 配置获取连接等待超时的时间 ms --> <property name="maxWait" value="${jdbc.maxWait}" /> <!-- 牺牲效率,避免活锁 --> <property name="useUnfairLock" value="false" /> <!-- 超过时间限制是否回收 未归还(调用close)的连接 --> <property name="removeAbandoned" value="false" /> <!-- 超时回收限制多长;没有批量处理需求,设短一点,单位 秒 --> <property name="removeAbandonedTimeout" value="180" /> <!-- 用来检测连接是否有效的sql,要求是一个查询语句--> <property name="validationQuery" value="SELECT 1 FROM dual" /> <!-- 空闲的时候检测(空闲时间超过下面的值) --> <property name="testWhileIdle" value="true" /> <!-- 申请连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --> <property name="testOnBorrow" value="false" /> <!-- 归还连接时执行validationQuery检测连接是否有效,配置为true会降低性能 --> <property name="testOnReturn" value="false" /> <!-- Destroy线程检测是否关闭连接的间隔,同时也是空闲检测的判断依据,单位 毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="600000" /> <!--属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有: 监控统计用的filter:stat 日志用的filter:log4j 防御SQL注入的filter:wall--> <property name="filters" value="filter:wall" /> </bean> 启动报错:org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Access denied for user 'root'@'122.225.88.154' (using password: YES) 122.225.88.154都不知道是哪里的地址,我已经蒙了,求大神指点
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
【资源】一个C/C++开发工程师的学习路线(已经无路可退,唯有逆风飞翔)【内附资源页】
声明: 1)该文章整理自网上的大牛和专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与增删。还望大家多多指点。大家都共享一点点,一起为祖国科研的推进...
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
20道你必须要背会的微服务面试题,面试一定会被问到
写在前面: 在学习springcloud之前大家一定要先了解下,常见的面试题有那块,然后我们带着问题去学习这个微服务技术,那么就会更加理解springcloud技术。如果你已经学了springcloud,那么在准备面试的时候,一定要看看看这些面试题。 文章目录1、什么是微服务?2、微服务之间是如何通讯的?3、springcloud 与dubbo有哪些区别?4、请谈谈对SpringBoot 和S...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
2020 年,大火的 Python 和 JavaScript 是否会被取而代之?
Python 和 JavaScript 是目前最火的两大编程语言,但是2020 年,什么编程语言将会取而代之呢? 作者 |Richard Kenneth Eng 译者 |明明如月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) 以下为译文: Python 和 JavaScript 是目前最火的两大编程语言。然而,他们不可能永远屹立不倒。最终,必将像其他编程语言一...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
神级宝库!GitHub 标星 1.2w+,Chrome 最天秀的插件都在这里啦!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个沉迷 Chrome 不能自拔的蒟蒻… 作为一个在远古时代用过什么 IE、360、猎豹等浏览器的资深器哥,当我第一次了解 Chrome 的时候,就被它的美貌给吸引住了… 就在我用了一段时间之后,我坚决的卸载了电脑上其它碍眼的浏览器,并觉得在之前的搬砖生涯中,我不配当哥,我只配是个沙雕… ...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
张朝阳回应迟到 1 分钟罚 500:资本家就得剥削员工
loonggg读完需要2分钟速读仅需 1 分钟大家我,我是你们的校长。前几天,搜狐的董事局主席兼 CEO 张朝阳和搜狐都上热搜了。原因很简单,就是搜狐出了“考勤新规”。一封搜狐对员工发布...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
从顶级黑客到上市公司老板
一看标题,很多老读者就知道我在写什么了。今天Ucloud成功上市,季昕华成为我所熟悉的朋友里又双叒叕一个成功上市的案例。我们认识大概是十五年多吧,如果没记错,第一次见面应该是2004年,...
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
​两年前不知如何编写代码的我,现在是一名人工智能工程师
全文共3526字,预计学习时长11分钟 图源:Unsplash 经常有小伙伴私信给小芯,我没有编程基础,不会写代码,如何进入AI行业呢?还能赶上AI浪潮吗? 任何时候努力都不算晚。 下面,小芯就给大家讲一个朋友的真实故事,希望能给那些处于迷茫与徘徊中的小伙伴们一丝启发。(下文以第一人称叙述) 图源:Unsplash 正如Elsa所说,职业转换是...
立即提问