一个比较麻烦的任务调度问题
先上题:
    问题描述

  有若干个任务需要在一台机器上运行。它们之间没有依赖关系,因此 可以被按照任意顺序执行。
  该机器有两个 CPU 和一个 GPU。对于每个任务,你可以为它分配不 同的硬件资源:
  1. 在单个 CPU 上运行。
  2. 在两个 CPU 上同时运行。
  3. 在单个 CPU 和 GPU 上同时运行。
  4. 在两个 CPU 和 GPU 上同时运行。
  一个任务开始执行以后,将会独占它所用到的所有硬件资源,不得中 断,直到执行结束为止。第 i 个任务用单个 CPU,两个 CPU,单个 CPU 加 GPU,两个 CPU 加 GPU 运行所消耗的时间分别为 ai,bi,ci 和 di。
  现在需要你计算出至少需要花多少时间可以把所有给定的任务完成。
输入格式
  输入的第一行只有一个正整数 n(1 ≤ n ≤ 40), 是总共需要执行的任 务个数。
  接下来的 n 行每行有四个正整数 ai, bi, ci, di(ai, bi, ci, di 均不超过 10), 以空格隔开。
输出格式
  输出只有一个整数,即完成给定的所有任务所需的最少时间。
样例输入
3
4 4 2 2
7 4 7 4
3 3 3 3
样例输出
7
样例说明
  有很多种调度方案可以在 7 个时间单位里完成给定的三个任务,以下是其中的一种方案:
  同时运行第一个任务(单 CPU 加上 GPU)和第三个任务(单 CPU), 它们分别在时刻 2 和时刻 3 完成。在时刻 3 开始双 CPU 运行任务 2,在 时刻 7 完成。

我刚开始学算法,对动态规划还不熟练,感觉这道题要用动态规划来做,却一直都找不到最优子结构,求大神点拨!

2个回答

michealpan
michealpan 没悟透呀
大约 4 年之前 回复

找不到最优子结构,那就不要用动态规划算法。关于任务调度算法,占用的资源多用的时间就少。既然需要你找出一个调度方案,用的时间最少,那就采取贪心算法,在当前做出最优选择。贪心算法选取调度方案原则:首先选择时间最少,其次选择占用资源最少。所以上述任务中,可供调度的方案有:a1/c1,a2/b2,a3。在执行任务的先后方便,若采用穷举法,那就是3!=6种方案,弃之。在选取任务时,建议画出三个时间轴辅助你思考。每选取一个任务要考虑到执行下一个任务时,中间空闲出来的时间。换句话说就是时间碎片最小化。所以答案很明显了。

michealpan
michealpan 我一开始也是这种思路去写,按照目前的状态去讨论下一组的状态。。但结果不对,因为后面的任务可能会影响前面几个任务的一组选择。。
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C#任务调度问题,如何实现任务执行完毕后执行下一个任务

用的Quartz,请问如何实现:在上一个任务执行完毕后,执行下一个任务?比如第一个任务是获取大量IP 第二个任务是查这些IP的地址,第二个任务需要在第一个任务执行完毕后3分钟,才开始执行,怎样实现?

quartz中任务调度问题

<p>      本人项目中用到了quartz时间调度控件,在某一天每5分钟扫描一次指定文件夹,若该文件夹中有txt文件则停止执行扫描,若没有发现txt文件则继续扫描该文件夹。</p> <p>      但本人项目中出现的状况是,即使是扫描程序发现文件夹中有txt文件也仍然执行扫描,就如何解决这个问题呢,请大家指教。谢谢。<img src="/images/smiles/icon_surprised.gif" alt=""></p><br /><strong>问题补充:</strong><br />我是在web中用到的quartz,其中的文件包括job.xml,properties, <br />请问应该在哪里移除呢?谢谢<br /><strong>问题补充:</strong><br />之前设置的任务是规定每个月的某天里重复运行,若按照您刚才的方法,暂定后,下个时间段它还能正常执行吗?谢谢

Quartz 我一个调度器多调度多个任务,但是有时候不执行是为什么?

我是一个调度器去调度多个 jobDetail trigger ,但是有时候 调度不执行,也不报错,多个任务的jobDetail组名称和trigger组名用的是一个,和这个有关系吗? 代码如下:新增调度任务: ``` // 启动调度器 JobDetail jobDetail = JobBuilder.newJob(IotSchedulerTime.class).withIdentity(jobDetailName,jobDetailGroup).usingJobData("command", command).usingJobData("jobDetailName",jobDetailName).build(); // 表达式调度构建器(即任务执行的时间) CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cron); // 按新的cronExpression表达式构建一个新的trigger CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerName,triggerGroup).withSchedule(scheduleBuilder).build(); scheduler.start(); scheduler.scheduleJob(jobDetail, trigger); ``` 删除代码: ``` TriggerKey triggerKey = TriggerKey.triggerKey(triggerName, triggerGroup); scheduler.pauseTrigger(triggerKey);// 停止触发器 scheduler.unscheduleJob(triggerKey);// 移除触发器 scheduler.deleteJob(JobKey.jobKey(jobDeatailName, jobDetailGroup));// 删除任务 ```

VxWorks的任务调度问题

我在应用里创建了两个优先级90的任务A和B,创建任务的顺序是A先于B, A() { get ticks; printf ticks; } B() { get ticks; printf ticks; } 但是运行的时候发现,A先打印了一段时间之后就不打印了,只有B在一直打印信息,查看任务状态的时候两个都是ready,为什么A任务就打印不出东西来了呢?

springMVC中使用任务调度框架Quartz引发的问题

问题描述: 1、页面调用接口A(区域添加),A接口中添加了一个Trigger触发任务,该任务会根据业务(算出该区域下的小区,比较耗时)将满足一定条件的数据写入table_a;任务大概执行2-5分钟左右; 2、然后页面点击区域列表中新添加的这个区域,去查询热力图接口,会很慢,20s-1min左右,已排除数据量大的原因,查询热力图的SQL是两个表做关联查,其中一个表就是table_a。 个人猜测: 分析过Debug日志,在查询热力图接口的后台日志当中,获取数据库连接花的时间比较久,而不是查询数据耗时,猜测是调度任务影响了热力图接口拿到数据库连接 求助: 请教大家,知道问题所在的还请不吝赐教,感激不尽,或者能给一些排查问题的方法,谢谢各位。

spring 3中的任务调度,怎样手动开启

spring 3中有个任务调度的,现在我用的是这种方式: [code="xml"]<task:scheduled-tasks> <task:scheduled ref="adminController" method="test" cron="3/10 * * * * ?" /> </task:scheduled-tasks>[/code] ,这样在启动tomcat解析xml时,这个test函数就开始执行了。我现在想通过手动的方式来开启任务调度,有什么解决办法(用spring3中的任务调度),哪位能帮帮我,谢谢了

Spring任务调度的问题

<p>需求:现在有个静态的boolean变量,需要根据给出的条件来控制变量的值,条件是一个Bean,代码如下</p> <p> </p> <pre name="code" class="java">import java.io.Serializable; import java.util.Date; public class TaskTime implements Serializable { private static final long serialVersionUID = 5050138699568912212L; private String expression; private Date startTime; private Date endTime; // Getter And Setter } </pre> <p> </p> <p>字段expression是一个CronExpression任务表达式</p> <p> </p> <p>当这个字段不为空或不是空字符串时,要根据表达式来控制boolean变量</p> <p>当表达式字段为空或空字符串时,要根据startTime把boolean变成true,endTime把boolean变量变成false</p> <p> </p> <p>可以给任务调度的方法如下:</p> <p> </p> <p>  </p> <pre name="code" class="java">private static boolean isRunning = false; public boolean run(){ isRunning = true; return isRunning; } public boolean stop(){ isRunning = false; return isRunning; } </pre> <p> </p> <p> </p> <p>请教如何来配置一个Spring任务调度来控制这个变量</p>

组合优化中的并行任务调度

组合优化中的并行任务调度提出了与经典调度模型(一个任务只有一个机器执行)不同的概念一个任务有一个或者多个机器执行。 但是多处理机任务(multiprocessors task)也是一个任务有一个或者多个机器执行。 问题是: 1.多处理机任务和并行任务的定义是不是相同的? 2.J. Blazewicz的文章中提到过moldable task和malleable task两种Parallel Task。那么Parallel Task是分为moldable task和malleable task两种吗?他们的定义和区别是什么? 有没有大佬给解释一下,我找的论文中对我上面的疑惑没有太详细的描述。

#数据结构 队列-简单任务调度

现有N个任务等处理,完成每个任务需要的时间分别为T1,T2,...(设为整数),处理任务的机器共有2台,要求将这些任务顺序分配给这两台机器处理,分配的原则是当前哪台机器处理任务的时间短就分配给哪台机器(如果当前两台机器处理完成任务的时间相同,则分配给第1台机器),要求按被处理完时间的先后顺序输出对应的任务号。 提示:设置两个队列,第一个队列存储分配给第一台机器的任务号,第二个队列存储分配给第二台机器的任务号。 函数initQueue完成队列初始化;queueEmpty判断队列是否为空;enQueue实现入队操作;deQueue实现出队操作;getHead获取队头元素;createJobs实现任务执行时间的输入,并将任务加入到相应的队列;dealJobs实现根据任务完成时间出队列,并输出任务编号 #include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 20 /* 队列存储空间初始分配量 */ typedef int Status; //构建任务数据类型 typedef struct { int id;//任务编号 int starttime;//任务开始时间 int runtime;//任务运行时间 } QElemType; /*循环队列的顺序存储结构 采用少用一个元素的方法实现, 即队列空间为 MAXSIZE,则有MAXSIZE-1个元素时则认为队列满。 */ typedef struct { QElemType data[MAXSIZE]; int front; /* 头指针 */ int rear; /* 尾指针,若队列不空,指向队列尾元素的下一个位置 */ } SqQueue; Status initQueue(SqQueue &Q); Status queueEmpty(SqQueue Q); void enQueue(SqQueue &Q,QElemType e); Status deQueue(SqQueue &Q,QElemType &e); QElemType getHead(SqQueue Q); void createJobs(SqQueue &A,SqQueue &B,int jobsNum); void dealJobs(SqQueue &A,SqQueue &B); int main(void) { int jobsNum; //任务数目 SqQueue A,B; initQueue(A); initQueue(B); scanf("%d", &jobsNum); createJobs(A,B,jobsNum); dealJobs(A,B); return 0; } /* 初始化一个空队列Q,头尾指针初始设置 */ Status initQueue(SqQueue &Q) { Q.front = 0; Q.rear = 0; return OK; } /* 若队列Q为空队列,则返回TRUE,否则返回FALSE */ Status queueEmpty(SqQueue Q) { if(Q.front == Q.rear) return TRUE; return FALSE; } /*只提交以下代码*/ void enQueue(SqQueue &Q,QElemType e) { } Status deQueue(SqQueue &Q,QElemType &e) { } QElemType getHead(SqQueue Q) { } void createJobs(SqQueue &A,SqQueue &B,int jobsNum) { } void dealJobs(SqQueue &A,SqQueue &B) { } 输入 第1行输入一个整数,表示有n个任务 第2行输入n个整数,表示每个任务需要处理的时间 输出 按处理完成的先后顺序输出对应的任务编号(如果两台机器同时完成当前任务,则先显示机器1的任务号) 样例输入 4 10 30 15 样例输出 1 3 2 4

quartz 任务调度问题,每次都执行两次 相隔只有几微秒

quartz 任务调度问题,每次都执行两次 相隔只有几微秒 导致插入数据库错误 没办法解决 [code="java"] org.quartz.scheduler.instanceName = QuartzScheduler org.quartz.scheduler.instanceId = AUTO org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 1 org.quartz.threadPool.threadPriority = 10 org.quartz.jobStore.misfireThreshold = 60000 org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore [/code] [code="java"] <bean id="cronTriggerPunch" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <!-- 使用嵌套Bean的方式来定义任务Bean --> <bean class="org.springframework.scheduling.quartz.JobDetailBean"> <!-- 指定任务Bean的实现类 --> <property name="jobClass" value="org.leegang.hrsystem.schedule.PunchJob"/> <!-- 为任务Bean注入属性 --> <property name="jobDataAsMap"> <map> <entry key="empMgr" value-ref="empManager"/> </map> </property> </bean> </property> <!-- 指定Cron表达式:周一到周五21点执行调度 --> <property name="cronExpression" value="0 0 21 ? * MON-FRI"/> </bean> [/code]

有关quartz任务调度的一个问题

各位大侠帮我看看,谢谢! 举个例 我添加了一个任务,开始时间是2010年3月1日,结束时间是2010年5月1日,调度时间是在这段日期间每天上午10点钟调度 调度任务数据是保存在数据库中的,每当tomcat启动时都会去加载当天的任务放入调度列表中,当到每天10点再进行调度。 但当我2010年3月3日上午9点钟启动tomcat时,它就将我这个任务放入调度列表,而且进行了一次调度.当到达10点钟时又进行了一次调度 问题是当tomcat启动时,还没到10点钟它就进行了一次调度? 另一个例子 同上 我添加了一个任务,开始时间是2010年3月3日,结束时间是2010年4月1日,调度时间是在这段日期间每天上午10点钟调度,当我2010年3月3日中午12点钟启动tomcat时,它就将我这个任务放入调度列表,而且进行了一次调度。 问题是10点钟过了它还会进行一次调度。应该要到第二天的10点才调度的呀。当然如果我是3月3日9点钟启动tomcat,它就只将今天的任务放入调度列表,到了10点才会去调度。 这个问题我想是在tomcat启动时,它都会将所有任务列表上一次可以调度的进行调度一次。 怎么设置在tomcat启动时不会去调度上一次的,只有在下一次任务到达时才进行调度呢? 这个问题怎么解决。 我用的是spring+hibernate+struts2+quartz quartz.properties 配置内容 #=============================================================== #Configure Main Scheduler Properties #=============================================================== org.quartz.scheduler.instanceName = QuartzScheduler org.quartz.scheduler.instanceId = AUTO #=============================================================== #Configure ThreadPool #=============================================================== org.quartz.threadPool.threadCount = 1 org.quartz.threadPool.threadPriority = 5 org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true #=============================================================== #Configure JobStore #=============================================================== org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore org.quartz.jobStore.misfireThreshold = 60000 web.xml 配置内容 <servlet> <display-name>Quartz Initializer Servlet</display-name> <servlet-name>QuartzInitializer</servlet-name> <servlet-class> org.quartz.ee.servlet.QuartzInitializerServlet </servlet-class> <init-param> <param-name>config-file</param-name> <param-value>/quartz.properties</param-value> </init-param> <init-param> <param-name>shutdown-on-unload</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>start-scheduler-on-load</param-name> <param-value>true</param-value> </init-param> <load-on-startup>5</load-on-startup> </servlet>

oozie定时循环调度spark任务

oozie定时循环调度spark任务,5分钟一次,但是如果spark任务5分钟没有跑完, 下一次spark任务会读到同样的文件内容再跑吗? 问题即 当次任务执行的时间如果大于循环的时间,oozie会不会继续下一次循环,还是会一直等到那一次spark运行完再去执行呢?

我的这个需求——“任务调度”是否适用工作流引擎来做?

在项目中需要这样的一个“任务调度”功能,JAVA、Spring环境: 1、通过API下达“任务”,这个任务将异步执行,可以立即执行也可以设定延迟时间 2、任务在新的线程池中异步执行,可以限制最大并行任务数(线程数) 3、任务的下达执行要与数据库事务相协调,不能出现任务开始执行了,但下达任务的线程数据库事务还没有提交的情况 4、任务执行失败,应可以重新执行,并可以指定延迟时间 5、可以配置任务间的依赖关系,例如: a执行成功后执行b, b执行完毕后不管成不成功均执行c, c执行成功后执行d,执行失败则执行e, g、h、i都执行成功后执行j, k、l、m有一个执行成功执行n………等等 6、可以设置具体任务的失败最大重试次数 7、系统应是可靠的,系统因为任何原因崩溃后,重新启动系统,原有任务应能继续流转 8、最好有限制某种任务最大并发数的功能,例如某个任务是向B系统发送数据,可以限定这种任务的并发数 9、最好有现成的手段查看当前任务的情况,例如已经下达了什么任务、那些正在执行、执行时间,必要时可以干预任务,例如强制终止、重新执行等 我们现在使用数据库、JMS/ActiveMQ、Java线程池等实现了一个用着,但不够完善。 我感觉这个需求应该可以叫“工作流”,但是我在网上查询工作流,发现大多都是站在例如创建公文、审批等等类似公文流转的场景的,或者是一上来就讲一堆理论,或是更多讨论如何便于最终用户来画图、控制流程,我没有这个需求,流程基本由开发人员指定,且多为程序模块间的关系。 我想知道: 这是否是工作流范畴,如果是,请介绍在Java下的开源引擎中的实现思路;如果不是,是否有其它有关“任务调度”的框架?

Spring Task作为任务调度的好处

Spring Task作为任务调度的好处都有什么啊?请简单说明几条

LTS轻量级任务调度(请各位大神解答)

我自己按照文档上搭建了一下环境,发现taskTracker和jobTracker一起也可以同时运行,我想问下JobClient是不是必须运行的,还是说在什么情况下必须运行? 另外,如果我想同时发布多个任务,该怎么配置;或者我要发布多个执行频率不同的任务,又该怎么配置? 求大神解答。。。

LTS 任务调度框架的环境搭建问题

哪位大神用过这个,并且搭建过运行环境的,分享一下。最好是先windows的,菜鸟一枚。感谢!

任务调度 定时器 quartz

我设置了一个定时器用 quartz实现,定时任务在8点进行执行,在8点进行任务的时候,由于一些需求,在job中,具体操作需要再延时一小时进行,这样应该如何实现呢

为什么我的定时调度任务每次只能执行一个任务,而且是每次最后添加的任务。

创建定时任务 public static void createScheduleJob(Scheduler scheduler, String jobName, String jobGroup, String cronExpression, QrtzTaskInfo params) throws SchedulerException { /** 任务名称、任务分组、调度表达式 */ /** 构建job信息 */ JobDetail jobDetail = JobBuilder.newJob(QuertzClusterJob.class).withIdentity(jobName, jobGroup).build(); /** 放入参数,运行时的方法可以获取 */ jobDetail.getJobDataMap().put("requestUrl", params.getRequestUrl()); jobDetail.getJobDataMap().put("requestType", params.getRequestType()); /** 表达式调度构建器 */ CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression); /** 按新的cronExpression表达式构建一个新的trigger */ CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(jobName, jobGroup) .withSchedule(cronScheduleBuilder).build(); try { scheduler.scheduleJob(jobDetail, trigger); } catch (SchedulerException e) { logger.error("创建定时任务失败"); throw new SchedulerException("创建定时任务失败"); } }

ucos-iii+stm32f105 任务调度进入HardFault_Handler

移植ucos-iii,单个任务可以跑起来,但是创建两个任务后,两个任务无法进行调度,具体代码如下: #define CAN1_TIMEOUT_PRIO 5 #define CAN1_TIMEOUT_STK_SIZE 2048 static OS_TCB CAN1_TIMEOUT_TCB; static CPU_STK CAN1_TIMEOUT_Stk[CAN1_TIMEOUT_STK_SIZE]; void Task_CAN1_TimeOut(void *p_arg); #define CAN1_SEND_PRIO 4 #define CAN1_SEND_STK_SIZE 2048 static OS_TCB CAN1_SEND_TCB; static CPU_STK CAN1_SEND_Stk[CAN1_SEND_STK_SIZE]; void Task_CAN1_SEND(void *p_arg); void Task_StartUp(void *p_arg) { OS_ERR err; (void)p_arg; OSTaskCreate((OS_TCB *)&CAN1_SEND_TCB, (CPU_CHAR *)"CAN1_SEND", (OS_TASK_PTR )Task_CAN1_SEND, (void *)0, (OS_PRIO )CAN1_SEND_PRIO, (CPU_STK *)&CAN1_SEND_Stk[0], (CPU_STK_SIZE )50, (CPU_STK_SIZE )CAN1_SEND_STK_SIZE, (OS_MSG_QTY )0, (OS_TICK )0, (void *)0, (OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR), (OS_ERR *)&err); OSTaskCreate((OS_TCB *)&CAN1_TIMEOUT_TCB, (CPU_CHAR *)"CAN1_TIMEOUT", (OS_TASK_PTR )Task_CAN1_TimeOut, (void *)0, (OS_PRIO )CAN1_TIMEOUT_PRIO, (CPU_STK *)&CAN1_TIMEOUT_Stk[CAN1_TIMEOUT_STK_SIZE], (CPU_STK_SIZE )50, (CPU_STK_SIZE )CAN1_TIMEOUT_STK_SIZE, (OS_MSG_QTY )0, (OS_TICK )0, (void *)0, (OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR), (OS_ERR *)&err); OSTaskDel(&STARTUP_TCB, &err); } main函数中创建Task_StartUp()这个任务,在Task_StartUp()这个任务中再创建上面两个任务,两个子任务的代码如下: void Task_CAN1_TimeOut(void *p_arg) { OS_ERR err; (void)p_arg; while (1) { CAN1_WriteData(CEMData, 8, CEMID); OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_HMSM_STRICT,&err); } } void Task_CAN1_SEND(void *p_arg) { OS_ERR err; (void)p_arg; while (1) { CAN1_WriteData(CHMData, 8, CHMID); OSTimeDlyHMSM(0,0,0,250,OS_OPT_TIME_HMSM_STRICT,&err); } } 目的是想让Task_CAN1_SEND()这个任务每隔250ms发送一次,Task_CAN1_TimeOut每隔500ms发送一次, kei环境下j-link调试,发现程序死在HardFault_Handler(),该怎么解决?

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

一文带你入门Java Stream流,太强了

两个星期以前,就有读者强烈要求我写一篇 Java Stream 流的文章,我说市面上不是已经有很多了吗,结果你猜他怎么说:“就想看你写的啊!”你看你看,多么苍白的喜欢啊。那就“勉为其难”写一篇吧,嘻嘻。 单从“Stream”这个单词上来看,它似乎和 java.io 包下的 InputStream 和 OutputStream 有些关系。实际上呢,没毛关系。Java 8 新增的 Stream 是为...

立即提问
相关内容推荐