Thread pools on the JVM should usually be divided into the following three categories:
- CPU-bound
- Blocking IO
- Non-blocking IO polling
Each of these categories has a different optimal configuration and usage pattern.
| <?xml version='1.0'?> | |
| <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> | |
| <fontconfig> | |
| <!-- ~/.config/fontconfig/fonts.conf --> | |
| <match target="font" > | |
| <edit mode="assign" name="hinting" > | |
| <bool>true</bool> | |
| </edit> | |
| </match> | |
| <match target="font" > |
| var webpack = require('webpack'); | |
| module.exports = { | |
| entry: './ui/entry.js', | |
| output: { path: __dirname + '/public/compiled', filename: 'bundle.js' }, | |
| module: { | |
| loaders: [ | |
| { test: /\.jsx?$/, loader: 'babel-loader', include: /ui/, query: { presets: ['es2015', 'react'] } } | |
| ] | |
| }, |
| export FREETYPE_PROPERTIES="truetype:interpreter-version=35" |
Fibers are an abstraction over sequential computation, similar to threads but at a higher level. There are two ways to think about this model: by example, and abstractly from first principles. We'll start with the example.
(credit here is very much due to Fabio Labella, whose incredible Scala World talk describes these ideas far better than I can)
Consider the following three functions