SEARCH KEYWORD -- Case sensitivity



  Java Concurrency Basics: CountDownLatch and CyclicBarrier

CountDownLatch CountDownLatch can be used in synchronizing behavior among threads, it makes one or more threads wait for some actions in other threads to be completed. It has a property count which defines how many countDown() need to be called before other threads which called await() to be waked up.  When a thread calls CountDownLatch.await(), the thread will be blocked until the value of count becomes 0. The initial value of count can be specified when creating the CountDownLatch instanc...

   JAVA,JAVA CONCURRENCY,COUNTDOWNLATCH,CYCLICBARRIER     2018-03-25 07:02:40

  2D Indoor CQB Robot Simulation

Program Design Purpose: The integration of robots in Close Quarters Battle (CQB) represents a significant advancement in modern military and law enforcement tactics. These robots, designed to navigate tight spaces, gather real-time intelligence, and engage threats, are invaluable assets in high-stakes scenarios. Our goal is to develop a 2D tactical board simulation system, similar to a computer game, that can load building floor blueprints, display CQB squad (robot) positions, enemy locations, ...

       2024-08-11 08:40:31

  MySQL Index Merge Optimization Practices

In production environment databases, it is often seen that some SQL where conditions include: equal condition on a normal index + primary key range query + order by limit Although using a normal index would be more efficient, the system chooses to use index merge instead in some cases. This article explores such index merge situations. Index Merge Official Introduction   The Index Merge access method retrieves rows with multiple range scans and merges their results into one. Generall...

   INDEX MERGE,MYSQL,PRIMARY INDEX,SECONDARY INDEX     2024-09-10 04:52:26

  SkipList in Go

Algorithmic thinking is the must-have in the coding world, so I have been keeping the routine of algorithm practice every week, consolidating my knowledge of data structures on one hand, and improving my coding skills as well. A difficult one happened to be stuck in my mind- Implement SkipList with Go, which took me quite a weekend. Below is the front-line report of how I finally got the hang of it. First, from its concept. Wiki has explained it well. a skip list is a probab...

   GOLANG,SKIPLIST     2022-04-05 02:21:59

  Encrypting and decrypting PGP file or text on MacOS

When doing data exchange among different parties, there is a frequent need of encrypting data or file and sending it to partner and asking partner to use corresponding key to decrypt the data or file. A famous way of exchanging data is using asymmetric keys where no secret key needs to be shared. One party can just use the public key shared by partner to encrypt the data and the other party uses the private key to decrypt the data. Today, we will introduce how to use PGP to encrypt and decrypt d...

   TUTORIAL,ENCRYPTION,DECRYPTION,PGP,GPG     2020-10-29 05:06:09

  The difference between System.load and System.loadLibrary in Java

When writing code using native library in Java, normally the first step is loading some native library. static{   System.load("D:" + File.separator + "Hello.dll"); } JDK provides two ways to load libraries: System.load(String filename) System.loadLibrary(String libname) This post will try to explain the differences of these two ways. According to Java Doc on System.load(), it has below description. Loads the native library specified by the filename argument. The filename a...

   NATIVE,JNI,JAVA,SYSTEM.LOAD,SYSTEM.LOADLIBRARY     2019-02-05 05:49:28

  Practice of using spinlock instead of mutex

Spinlock and mutex are two important concepts in multithreading programs. They are used to lock some shared resource to prevent concurrent access which may affect data consistency. But they do have differences, what are the differences? when should we use spinlock instead of mutex? The Theory In theory, when a thread tries to lock a mutex and it does not succeed, because the mutex is already locked, it will go to sleep, immediately allowing another thread to run. It will continue to sleep until...

   Spinlock,Mutex,Concurrency     2014-04-19 21:54:12

  How does Class box get 1 million users with only 4 people?

"Class box" is an app which helps students create course plan developed by 4 Chinese. This app was created in 2012. They get over 1 million users with only 4 people. How do they make this? The co-founder of "Class box" Tianfang Li explains this on Zhihu. Here is what he said: About millions of users, in the mobile Internet era what we need to do is just find a good entry point, rapid iteration and with a little luck, a small team or even an independent developer can make millions user level prod...

   class box,team size,sillicon valley     2013-04-03 08:08:21

  What is Hystrix and How does Hystrix work

Background In distributed systems, there is one effect where the unavailability of one service or some services will lead to the service unavailability of the whole system, this is called service avalanche effect. A common way to prevent service avalanche is do manual service fallback, in fact Hystrix also provides another option beside this. Definition of Service Avalanche Effect Service avalanche effect is a kind of effect where the service provider fails to provide service which causes t...

   AVALANCHE EFFECT,HYSTRIX,DISTRIBUTED SYSTEM     2019-02-04 06:00:38

  Things to Look for in Microsoft .NET Framework 4.7

The .NET Framework 4.7 is the updated version of the .NET Framework 4.6.2.  It can run along with earlier versions of the .NET Framework. On installation it appears as an update for Microsoft Windows under the Installed Updates item in Control Panel. The improvements in the.NET Framework 4.7 includes: High DPI support for Windows Forms applications on Windows 10 Touch support for WPF applications on Windows 10 Enhanced cryptography support Performance improvements .NET Framework Documenta...

   ASP.NET, ASP.NET FRAMEWORK     2017-07-18 05:55:20